summaryrefslogtreecommitdiff
path: root/Dh_Haskell.sh
diff options
context:
space:
mode:
authorDavid Fox <dsf@seereason.com>2015-03-31 17:17:12 +0000
committerDavid Fox <dsf@seereason.com>2015-03-31 17:17:12 +0000
commit51ec6096b658244b8c4feb3b74b33b35f3f0cf82 (patch)
tree822677e2ca969a6c9ede2ee0af07f04bbb51d982 /Dh_Haskell.sh
parentf10273bab4161e5677dd4e49ef0aba7d6c123001 (diff)
Add functions to Dh_Haskell.hs
Diffstat (limited to 'Dh_Haskell.sh')
-rw-r--r--Dh_Haskell.sh70
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/-................................$//'
}