openbsd-ports/lang/ghc/files/mkregunreg.sh
kili 87a3f71582 Update to 6.6.1. With helpful hints from Don Stewart and espie@.
Thanks to all the testers and to steven@, who was so kind to
build the HC files for bootstrapping on amd64.
2007-07-21 17:14:57 +00:00

56 lines
1013 B
Bash
Executable File

# $OpenBSD: mkregunreg.sh,v 1.1 2007/07/21 17:14:57 kili Exp $
#
# Create register and unregister scripts for updating the Cabal
# package registry.
# This script must be called from the ghc build directory.
prefix="$1"
pkg_conf="$prefix/lib/ghc/package.conf"
ghc_pkg="$prefix/bin/ghc-pkg"
umask 022
my_ghc_pkg() {
./utils/ghc-pkg/ghc-pkg.bin --global-conf ./driver/package.conf "$@"
}
for p in $(my_ghc_pkg list --simple-output); do
echo $p $p
set -- $(my_ghc_pkg field $p depends)
shift
for d; do
echo $p $d
done
done > deps
exec > register.sh
cat <<- 'EOF'
#! /bin/sh
exec > /dev/null
EOF
tsort -r deps |
while read p; do
echo "$ghc_pkg register - << 'EOF'"
my_ghc_pkg describe $p
echo EOF
done
echo rm -f $pkg_conf.old
exec > unregister.sh
cat <<- 'EOF'
#! /bin/sh
exec > /dev/null
EOF
tsort deps |
sed "s!^!$ghc_pkg unregister !"
cat <<- EOF
rm -f $pkg_conf.old
# If no packages are left, just remove the registry.
if echo '[]' | cmp -s - $pkg_conf; then
rm -f $pkg_conf
fi
EOF