hsenv-0.4: skeletons/cabal
#!/bin/sh
PATH_ELEMS="$(echo ${PATH} | tr -s ':' '\n')"
ORIG_CABAL_BINARY=""
for PATH_ELEM in ${PATH_ELEMS}; do
CABAL_CANDIDATE="${PATH_ELEM}/cabal"
if command -v "${CABAL_CANDIDATE}" > /dev/null 2> /dev/null; then
if [ "${0}" != "${CABAL_CANDIDATE}" ]; then
if [ -z "${ORIG_CABAL_BINARY}" ]; then
ORIG_CABAL_BINARY="${CABAL_CANDIDATE}"
fi
fi
fi
done
if [ -z "${ORIG_CABAL_BINARY}" ]; then
echo "cabal wrapper: Couldn't find real cabal program"
exit 1
fi
CABAL_CONFIG="<CABAL_CONFIG>"
CABAL_BUILDDIR_ARG=""
if [ -z "<HSENV_NAME>" ]; then
CABAL_BUILDIR="dist"
else
CABAL_BUILDIR="dist_<HSENV_NAME>"
fi
CABAL_BUILDABLE_COMMANDS="build clean configure copy haddock hscolour install register sdist test upgrade"
CABAL_COMMAND="$(echo ${@} | tr -s ' ' '\n' | grep -E '[a-z]' | grep -Ev '^-' | head -n 1)"
for CABAL_BUILDABLE_COMMAND in ${CABAL_BUILDABLE_COMMANDS}; do
if [ "${CABAL_BUILDABLE_COMMAND}" = "${CABAL_COMMAND}" ]; then
CABAL_BUILDDIR_ARG="--builddir=${CABAL_BUILDIR}"
fi
done
CABAL_CONFIGURE_COMMANDS="configure install upgrade"
for CABAL_CONFIGURE_COMMAND in ${CABAL_CONFIGURE_COMMANDS}; do
if [ "${CABAL_CONFIGURE_COMMAND}" = "${CABAL_COMMAND}" ]; then
CABAL_BUILDDIR_ARG="${CABAL_BUILDDIR_ARG} ${PACKAGE_DB_FOR_CABAL}"
fi
done
exec "${ORIG_CABAL_BINARY}" \
--config-file="${CABAL_CONFIG}" \
${CABAL_BUILDDIR_ARG} "${@}"