Merge branch 'main' of https://github.tools.sap/E-Mobility/mbt-docker into multiple...
[mbt-docker.git] / build-image.sh
1 #!/usr/bin/env sh
2
3 shopt -s extglob
4
5 images="mbt-node14-java11-docker mbt-node16-java11-docker mbt-node18-java11-docker \
6 mbt-node14-java17-docker mbt-node16-java17-docker mbt-node18-java17-docker \
7 mbt-node14-java19-docker mbt-node16-java19-docker mbt-node18-java19-docker"
8
9 repositories="mbt-node14-java11-docker mbt-node16-java11-docker mbt-node18-java11-docker \
10 mbt-node14-java17-docker mbt-node16-java17-docker mbt-node18-java17-docker \
11 mbt-node14-java19-docker mbt-node16-java19-docker mbt-node18-java19-docker"
12
13 usage() {
14 echo " Build docker images.
15
16 Usage:
17 ./$(basename $0) [-b <name>]
18 ./$(basename $0) [-p <name>]
19 ./$(basename $0) [-c]
20 ./$(basename $0) [-h]
21
22 Options:
23 -h Show this help.
24 -b <${images//+([[:space:]])/|}|all> Build docker images.
25 -p <${repositories//+([[:space:]])/|}|all> Push docker images.
26 -c Clean docker images." 1>&2; exit 1;
27 }
28
29 build_all() {
30 for image in ${images}; do
31 make NAME=${image}
32 done
33 }
34
35 push_all() {
36 for repository in ${repositories}; do
37 make docker-push-registry NAME=${repository}
38 done
39 }
40
41 [ $# -eq 0 ] && usage
42 while getopts ":b:p:ch" option; do
43 case "${option}" in
44 b)
45 name=${OPTARG}
46 if [[ ${name} == "all" ]]; then
47 build_all
48 elif [[ -z "${images##*$name*}" ]]; then
49 make NAME=${name}
50 else
51 echo "Error: Unknown image name as option argument '${OPTARG}'" >&2;
52 usage
53 fi
54 ;;
55 p)
56 repository=${OPTARG}
57 if [[ ${repository} == "all" ]]; then
58 push_all
59 elif [[ -z "${repositories##*$repository*}" ]]; then
60 make docker-push-registry NAME=${repository}
61 else
62 echo "Error: Unknown repository name as option argument '${OPTARG}'" >&2;
63 usage
64 fi
65 ;;
66 c)
67 make dist-clean
68 ;;
69 :)
70 echo "Error: Missing option argument for '-${OPTARG}'" >&2;
71 usage
72 ;;
73 \?)
74 # Invalid option
75 echo "Error: Unknown or invalid option for '-${OPTARG}'" >&2;
76 usage
77 ;;
78 *|h)
79 usage
80 ;;
81 esac
82 done