X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=build-image.sh;h=34d9a7fbc0136b34eb7791747778f81dccad03e1;hb=HEAD;hp=14efb6a7a0f0541ec4b6706e4c246c6cf0f2fd4d;hpb=30a42bd5c1087571ad49efe51d20a716737a9dec;p=mbt-docker.git diff --git a/build-image.sh b/build-image.sh index 14efb6a..34d9a7f 100755 --- a/build-image.sh +++ b/build-image.sh @@ -1,41 +1,84 @@ #!/usr/bin/env sh -images="mbt-node14-java11-docker mbt-node16-java11-docker mbt-node14-java17-docker mbt-node16-java17-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 - exit 1 fi ;; + 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; + usage + ;; \?) # Invalid option - echo "Error: Unknown or invalid option argument for -${OPTARG}" >&2; - usage - exit 1;; - :) - echo "Error: Missing option argument for -${OPTARG}" >&2; + echo "Error: Unknown or invalid option for '-${OPTARG}'" >&2; usage - exit 1;; + ;; *|h) usage ;;