You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.3 KiB
67 lines
1.3 KiB
5 years ago
|
#!/usr/bin/env bash
|
||
|
set -e
|
||
|
|
||
|
PROGNAME=$0
|
||
|
BUILD_IMAGE=false
|
||
|
COOKIECUTTER_TEMPLATE='.'
|
||
|
|
||
|
|
||
|
usage() {
|
||
|
cat << EOF >&2
|
||
|
Usage: $PROGNAME [OPTIONS]
|
||
|
|
||
|
Options:
|
||
|
-b, --build Build Docker image before running cookiecutter
|
||
|
-t, --template Specify custom cookiecutter template via a URI to a git repo
|
||
|
e.g. https://github.com/cookiecutter-flask/cookiecutter-flask.git
|
||
|
Defaults to template in current working directory
|
||
|
-h, --help Show this message and exit
|
||
|
|
||
|
EOF
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
|
||
|
process_args() {
|
||
|
while test $# -gt 0
|
||
|
do
|
||
|
case "$1" in
|
||
|
-h) usage
|
||
|
;;
|
||
|
--help) usage
|
||
|
;;
|
||
|
-b) BUILD_IMAGE=true
|
||
|
;;
|
||
|
--build) BUILD_IMAGE=true
|
||
|
;;
|
||
|
-t) COOKIECUTTER_TEMPLATE="$2"
|
||
|
shift
|
||
|
;;
|
||
|
--template) COOKIECUTTER_TEMPLATE="$2"
|
||
|
shift
|
||
|
;;
|
||
|
--*) usage;
|
||
|
exit 1;
|
||
|
;;
|
||
|
*) usage;
|
||
|
exit 1;
|
||
|
;;
|
||
|
esac
|
||
|
shift
|
||
|
done
|
||
|
}
|
||
|
|
||
|
|
||
|
run_cookiecutter() {
|
||
|
if [[ "$(docker images -q cookiecutter-docker 2> /dev/null)" == "" ]] || $BUILD_IMAGE ; then
|
||
|
docker build . --tag=cookiecutter-docker
|
||
|
fi
|
||
|
|
||
|
docker run -i -t -v ${PWD}:/build -w /build cookiecutter-docker ${COOKIECUTTER_TEMPLATE}
|
||
|
}
|
||
|
|
||
|
process_args "$@"
|
||
|
run_cookiecutter
|
||
|
|
||
|
exit 0
|