Blob Blame History Raw
#!/bin/sh

set -e

[ $# -ne 1 -o ! -r $1 ] && echo "Usage: $0 hackage-version.tar.gz" && exit 1

HACKAGE=$1

INPUT=$(basename $HACKAGE .tar.gz)

VERSION=$(echo $INPUT | sed -e "s/.*-//")
NAME=$(echo $INPUT | sed -e "s/-$VERSION//")

TMPDIR=$(mktemp -d)
CURRENT_DIR=$PWD
cd $TMPDIR
tar zxf $HACKAGE "*.cabal"

if grep -qi exposed-modules: */*.cabal; then
  HAS_LIB=yes
fi

if grep -qi executable */*.cabal; then
  HAS_BIN=yes
fi
cd -
rm -rf $TMPDIR

if [ "$HAS_LIB" -a ! "$HAS_BIN" ]; then
  PREFIX=ghc-
fi

SPECFILE=$PREFIX$NAME.spec

[ -r $SPECFILE ] && echo "$SPECFILE already exists!" && exit 1

cp /usr/share/ghc/cabal-${HAS_BIN:+bin}${HAS_LIB:+lib}-template.spec.in $SPECFILE

echo "created $SPECFILE (${HAS_BIN:+bin}${HAS_LIB:+lib})"

DATE=$(env LANG=C date +"%a %b %e %Y")

sed -i -e "s/@PACKAGE@/$NAME/" -e "s/@GHC_VERSION@/$(ghc --numeric-version)/" -e "s/@VERSION@/$VERSION/" -e "s/@DATE@/$DATE/" $SPECFILE