#!/bin/bash -e
if [ $# -eq 0 ]; then
LIBNAME="$(basename $(pwd))"
TGT="-"
elif [ $# -eq 1 ]; then
LIBNAME="$1"
TGT='-'
elif [ $# -eq 2 ]; then
LIBNAME="$1"
TGT="$2"
else
echo "USAGE: $0 [library name]" >&2
exit 99
fi
NAME=$(git config user.name)
EMAIL=$(git config user.email)
USER="${NAME} <${EMAIL}>"
YEAR=$(date '+%Y')
if [ -z "${CATEGORY}" ]; then
CAT_FIELD="-- category:"
else
CAT_FIELD="category: ${CATEGORY}"
fi
if [ -z "${SYNOPSIS}" ]; then
SYN_FIELD="-- synopsis:"
else
SYN_FIELD="synopsis: ${SYNOPSIS}"
fi
if [ -z "${DESCRIPTION}" ]; then
DESCR_FIELD="-- description:"
else
DESCR_FIELD="description: ${DESCRIPTION}"
fi
function cabal_file {
cat <<EOF
name: ${LIBNAME}
version: 0.1.0.0
${SYN_FIELD}
${DESCR_FIELD}
license: BSD3
license-file: LICENSE
author: ${USER}
maintainer: ${USER}
copyright: ©${YEAR} ${NAME}
${CAT_FIELD}
build-type: Simple
cabal-version: >= 1.14
library
-- exposed-modules:
ghc-options: -Wall
build-depends: base >=4.7 && <4.10
default-language: Haskell2010
default-extensions: OverloadedStrings,
ScopedTypeVariables
EOF
}
if [ "x${TGT}" = "x-" ]; then
cabal_file
else
cabal_file >${TGT}
fi