Improve build script options error reporting
[mbt-docker.git] / build-image.sh
1 #!/usr/bin/env sh
2
3 images="mbt-node14-java11-docker mbt-node16-java11-docker mbt-node14-java17-docker mbt-node16-java17-docker"
4
5 usage() {
6 echo "Usage: $0 [-n <${images// /|}|all>" 1>&2; exit 1;
7 }
8
9 all() {
10 for image in ${images}; do
11 make NAME=${image}
12 done
13 }
14
15 [ $# -eq 0 ] && usage
16 while getopts "n:h" option; do
17 case "${option}" in
18 n)
19 name=${OPTARG}
20 if [[ ${name} == "all" ]]; then
21 all
22 elif [[ -z "${images##*$name*}" ]]; then
23 make NAME=${name}
24 else
25 echo "Error: Unknown image name for option argument -${OPTARG}" >&2;
26 usage
27 exit 1
28 fi
29 ;;
30 \?)
31 # Invalid option
32 echo "Error: Unknown or invalid option argument for -${OPTARG}" >&2;
33 usage
34 exit 1;;
35 :)
36 echo "Error: Missing option argument for -${OPTARG}" >&2;
37 usage
38 exit 1;;
39 *|h)
40 usage
41 ;;
42 esac
43 done