#!/bin/bash PREFIX=$(dirname $(dirname $(which ghc))) echo "PREFIX = $PREFIX" function clean () { if (cd $NAME && ghc --make Setup && ./Setup clean) then echo "=============== cleaned in $NAME ===============" else false fi } function pack () { NAME=$(basename $1 .tar.gz) TGZ=$NAME''.tar.gz URL=http://hackage.haskell.org/package/$NAME/$TGZ if clean $NAME then echo else rm -rf $NAME if [ ! -f $TGZ ] then echo "retrieving $URL" wget $URL fi tar xzf $TGZ fi (cd $NAME && \ ghc --make Setup && \ ./Setup configure --prefix=$PREFIX -p && \ ./Setup build -v && \ ./Setup haddock && \ ./Setup install -v && \ echo "=============== $NAME DONE ===============" ) } for i in $* do echo "=============== Starting $i ===============" if pack $i then echo else echo "=============== Problem in $i ===============" exit fi done