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