X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=build-image.sh;h=34d9a7fbc0136b34eb7791747778f81dccad03e1;hb=HEAD;hp=bb55f2fbb33db7d8d292e5007d066e49ee2a2107;hpb=c485bbb14c9fa7c40cd6116e8b8179c810936bb0;p=mbt-docker.git diff --git a/build-image.sh b/build-image.sh index bb55f2f..34d9a7f 100755 --- a/build-image.sh +++ b/build-image.sh @@ -1,40 +1,82 @@ #!/usr/bin/env sh -images="mbt-node14-java11-docker mbt-node16-java11-docker mbt-node18-java11-docker \ - mbt-node14-java17-docker mbt-node16-java17-docker mbt-node18-java17-docker \ - mbt-node14-java19-docker mbt-node16-java19-docker mbt-node18-java19-docker" +shopt -s extglob + +images="mbt-node14-java8-docker mbt-node16-java8-docker mbt-node18-java8-docker mbt-node20-java8-docker \ + mbt-node14-java11-docker mbt-node16-java11-docker mbt-node18-java11-docker mbt-node20-java11-docker \ + mbt-node14-java17-docker mbt-node16-java17-docker mbt-node18-java17-docker mbt-node20-java17-docker \ + mbt-node14-java21-docker mbt-node16-java21-docker mbt-node18-java21-docker mbt-node20-java21-docker" + +# repositories="mbt-node14-java8-docker mbt-node16-java8-docker mbt-node18-java8-docker mbt-node20-java8-docker \ +# mbt-node14-java11-docker mbt-node16-java11-docker mbt-node18-java11-docker mbt-node20-java11-docker \ +# mbt-node14-java17-docker mbt-node16-java17-docker mbt-node18-java17-docker mbt-node20-java17-docker \ +# mbt-node14-java21-docker mbt-node16-java21-docker mbt-node18-java21-docker mbt-node20-java21-docker" + +repositories=${images} usage() { - echo "Usage: $0 [-n <${images// /|}|all>" 1>&2; exit 1; + echo " Build docker images. + + Usage: + ./$(basename $0) [-b ] + ./$(basename $0) [-p ] + ./$(basename $0) [-c] + ./$(basename $0) [-h] + + Options: + -h Show this help. + -b <${images//+([[:space:]])/|}|all> Build docker images. + -p <${repositories//+([[:space:]])/|}|all> Push docker images. + -c Clean docker images." 1>&2; exit 1; } -all() { +build_all() { for image in ${images}; do make NAME=${image} done } +push_all() { + for repository in ${repositories}; do + make docker-push-registry NAME=${repository} + done +} + [ $# -eq 0 ] && usage -while getopts "n:h" option; do +while getopts ":b:p:ch" option; do case "${option}" in - n) + b) name=${OPTARG} - if [[ ${name} == "all" ]]; then - all - elif [[ -z "${images##*$name*}" ]]; then + if [ ${name} = "all" ]; then + build_all + elif [ -z "${images##*$name*}" ]; then make NAME=${name} else - echo "Error: Unknown image name for option argument -${OPTARG}" >&2; + echo "Error: Unknown image name as option argument '${OPTARG}'" >&2; usage fi ;; - \?) - # Invalid option - echo "Error: Unknown or invalid option argument for -${OPTARG}" >&2; - usage + p) + repository=${OPTARG} + if [ ${repository} = "all" ]; then + push_all + elif [ -z "${repositories##*$repository*}" ]; then + make docker-push-registry NAME=${repository} + else + echo "Error: Unknown repository name as option argument '${OPTARG}'" >&2; + usage + fi + ;; + c) + make dist-clean ;; :) - echo "Error: Missing option argument for -${OPTARG}" >&2; + echo "Error: Missing option argument for '-${OPTARG}'" >&2; + usage + ;; + \?) + # Invalid option + echo "Error: Unknown or invalid option for '-${OPTARG}'" >&2; usage ;; *|h)