102 lines
2.1 KiB
Bash
Executable File
102 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
######
|
|
# Generates dockerfiles
|
|
# It expects docker to be logged in to ECR (see aws-login)
|
|
|
|
set -e
|
|
|
|
VERBOSE=0
|
|
|
|
DIR=`dirname $(realpath "${BASH_SOURCE[0]}")`
|
|
OLDDIR=`pwd`
|
|
cd "$DIR"
|
|
|
|
source "$DIR/../config"
|
|
source "$DIR/libs.sh"
|
|
|
|
usage() {
|
|
echo "Usage: $0 [-h] [-v] [-dub] [-i: input, default] -o: output " 1>&2;
|
|
echo "This script builds framework docker images, the following options are available:" 1>&2;
|
|
echo " -h: This message" 1>&2;
|
|
echo " Environment" 1>&2;
|
|
echo " -d: Debug" 1>&2;
|
|
echo " -u: Unit" 1>&2;
|
|
echo " -b: Base" 1>&2;
|
|
echo " -i: Config Input File" 1>&2;
|
|
echo " -o: Output file" 1>&2;
|
|
echo " -v: Verbose" 1>&2;
|
|
exit 1;
|
|
}
|
|
|
|
OUTFILE=""
|
|
CFGFILE="../config"
|
|
|
|
SELECTED_MODES=0
|
|
DEBUG_MODE=0
|
|
UNIT_MODE=0
|
|
BASE_MODE=0
|
|
|
|
while getopts "i:o:hvdub" o; do
|
|
case "${o}" in
|
|
d)
|
|
DEBUG_MODE=1
|
|
SELECTED_MODES+=1
|
|
;;
|
|
u)
|
|
UNIT_MODE=1
|
|
SELECTED_MODES+=1
|
|
;;
|
|
b)
|
|
BASE_MODE=1
|
|
SELECTED_MODES+=1
|
|
;;
|
|
i)
|
|
if [[ "$OPTARG" != "${OPTARG#/}" ]]; then
|
|
CFGFILE="${OPTARG}"
|
|
else
|
|
CFGFILE="${OLDDIR}/${OPTARG}"
|
|
fi
|
|
;;
|
|
o)
|
|
if [[ "$OPTARG" != "${OPTARG#/}" ]]; then
|
|
OUTFILE="${OPTARG}"
|
|
else
|
|
OUTFILE="${OLDDIR}/${OPTARG}"
|
|
fi
|
|
;;
|
|
v)
|
|
VERBOSE=1
|
|
;;
|
|
h)
|
|
usage
|
|
;;
|
|
*)
|
|
printerr "Unsupported option ${o}"
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
|
|
if [[ $SELECTED_MODES -ne 1 ]]; then
|
|
printerr "Invalid mode"
|
|
usage
|
|
fi
|
|
|
|
if [[ $OUTFILE == "" ]]; then
|
|
printerr "Missing outfile"
|
|
usage
|
|
fi
|
|
|
|
STARTING_FILE="../cicd/dockerfiles/build.dockerfile"
|
|
if [[ $DEBUG_MODE -eq 1 ]]; then
|
|
STARTING_FILE="../cicd/dockerfiles/debug.dockerfile"
|
|
fi
|
|
if [[ $UNIT_MODE -eq 1 ]]; then
|
|
STARTING_FILE="../cicd/dockerfiles/test.dockerfile"
|
|
fi
|
|
msg "Using source file $STARTING_FILE"
|
|
|
|
buildTemplate -f "$CFGFILE" -t "$STARTING_FILE" -o "$OUTFILE"
|
|
|