12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/bin/bash -e
- if [ $# -eq 0 ]; then
- EXENAME="$(basename $(pwd))"
- TGT="-"
- elif [ $# -eq 1 ]; then
- EXENAME="$1"
- TGT='-'
- elif [ $# -eq 2 ]; then
- EXENAME="$1"
- TGT="$2"
- else
- echo "USAGE: $0 [executable 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: ${EXENAME}
- 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
- executable ${EXENAME}
- hs-source-dirs: src
- main-is: Main.hs
- default-extensions: OverloadedStrings,
- ScopedTypeVariables
- ghc-options: -Wall
- build-depends: base >=4.7 && <4.10
- default-language: Haskell2010
- EOF
- }
- if [ "x${TGT}" = "x-" ]; then
- cabal_file
- else
- cabal_file >${TGT}
- fi
|