Commit | Line | Data |
---|---|---|
d2913546 JB |
1 | #!/usr/bin/env sh |
2 | ||
0ab1c3ca JB |
3 | shopt -s extglob |
4 | ||
81986a8d JB |
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" | |
d2913546 | 8 | |
3442a8df JB |
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 | ||
d2913546 | 13 | usage() { |
0ab1c3ca JB |
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; | |
d2913546 JB |
27 | } |
28 | ||
3442a8df | 29 | build_all() { |
d2913546 JB |
30 | for image in ${images}; do |
31 | make NAME=${image} | |
32 | done | |
33 | } | |
34 | ||
3442a8df JB |
35 | push_all() { |
36 | for repository in ${repositories}; do | |
37 | make docker-push-registry NAME=${repository} | |
38 | done | |
39 | } | |
40 | ||
d2913546 | 41 | [ $# -eq 0 ] && usage |
3442a8df | 42 | while getopts ":b:p:ch" option; do |
d2913546 | 43 | case "${option}" in |
3442a8df | 44 | b) |
d2913546 | 45 | name=${OPTARG} |
535de2bb | 46 | if [ ${name} = "all" ]; then |
3442a8df | 47 | build_all |
535de2bb | 48 | elif [ -z "${images##*$name*}" ]; then |
d2913546 JB |
49 | make NAME=${name} |
50 | else | |
3442a8df | 51 | echo "Error: Unknown image name as option argument '${OPTARG}'" >&2; |
d2913546 | 52 | usage |
d2913546 JB |
53 | fi |
54 | ;; | |
3442a8df JB |
55 | p) |
56 | repository=${OPTARG} | |
535de2bb | 57 | if [ ${repository} = "all" ]; then |
3442a8df | 58 | push_all |
535de2bb | 59 | elif [ -z "${repositories##*$repository*}" ]; then |
3442a8df JB |
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 | |
76f7abe4 | 68 | ;; |
30a42bd5 | 69 | :) |
3442a8df JB |
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; | |
30a42bd5 | 76 | usage |
76f7abe4 | 77 | ;; |
d2913546 JB |
78 | *|h) |
79 | usage | |
80 | ;; | |
81 | esac | |
82 | done |