diff options
author | David Fox <dsf@seereason.com> | 2015-03-31 17:17:12 +0000 |
---|---|---|
committer | David Fox <dsf@seereason.com> | 2015-03-31 17:17:12 +0000 |
commit | 51ec6096b658244b8c4feb3b74b33b35f3f0cf82 (patch) | |
tree | 822677e2ca969a6c9ede2ee0af07f04bbb51d982 /Dh_Haskell.sh | |
parent | f10273bab4161e5677dd4e49ef0aba7d6c123001 (diff) |
Add functions to Dh_Haskell.hs
Diffstat (limited to 'Dh_Haskell.sh')
-rw-r--r-- | Dh_Haskell.sh | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Dh_Haskell.sh b/Dh_Haskell.sh index c5b15b2..f0a2002 100644 --- a/Dh_Haskell.sh +++ b/Dh_Haskell.sh @@ -1,3 +1,73 @@ +cpu(){ + ghc -e 'putStr System.Info.arch' +} + +os(){ + ghc -e 'putStr System.Info.os' +} + +package_prefix(){ + echo $1 | sed -n -e 's|^\([^-]*\)-.*-[^-]*$|\1|p' +} + +package_hc(){ + echo $1 | sed -n -e 's|^lib\([^-]*\)-.*-[^-]*$|\1|p' +} + +package_ext(){ + case $1 in + # I'm told the ghc build uses these scripts, hence these special cases + ghc) echo "dev";; + ghc-prof) echo "prof";; + *) echo $1 | sed -n -e 's|^[^-]*-.*-\([^-]*\)$|\1|p';; + esac +} + +packages_hc(){ + DEB_DEFAULT_COMPILER=$1 + DEB_PACKAGES=$2 + hcs=`{ for i in ${DEB_PACKAGES}; do package_hc $i; done; } | sort -u` + if [ `echo ${hcs} | wc -w` = 0 ]; then hcs=${DEB_DEFAULT_COMPILER}; fi + if [ `echo ${hcs} | wc -w` != 1 ]; then echo "Multiple compilers not supported: ${hc}"; exit 1; fi + echo ${hcs} +} + +hc_libdir(){ + case $1 in + ghc) echo "usr/lib/haskell-packages/ghc/lib";; + *) echo "Don't know package_libdir for $1" >&2; exit 1;; + esac +} + +package_libdir(){ + hc_libdir `package_hc $1` +} + +hc_pkgdir(){ + case $1 in + ghc) echo "var/lib/ghc/package.conf.d";; + *) echo "Don't know pkgdir for $1" >&2; exit 1;; + esac +} + +package_pkgdir(){ + hc_pkgdir `package_hc $1` +} + +hc_prefix(){ + case $1 in + ghc) echo "usr";; + *) echo "Don't know prefix for compiler $1" >&2; exit 1;; + esac +} + +hc_haddock(){ + case $1 in + ghc) echo "haddock";; + *) echo "Don't know pkgdir for $1" >&2; exit 1;; + esac +} + strip_hash(){ echo "$1" | sed 's/-................................$//' } |