From ed87f8ef79ec3d6d1a7756ae2d56040c0346d9a1 Mon Sep 17 00:00:00 2001 From: Chris Kankiewicz Date: Fri, 6 May 2016 08:08:09 -0700 Subject: [PATCH] Updated build script --- build.sh | 68 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 60 insertions(+), 8 deletions(-) diff --git a/build.sh b/build.sh index 78d493a..e546ccf 100755 --- a/build.sh +++ b/build.sh @@ -1,17 +1,69 @@ #!/usr/bin/env bash set -o errexit -# Set the image name -IMAGE_NAME="phlak/mumble" +## PRE-RUN SETUP & CONFIGURATION +######################################## -# Set script directory path SCRIPT_DIR="$(dirname $(readlink -f ${0}))" -# Set image tag +IMAGE_NAME="phlak/mumble" TAG="$(grep 'ENV MUMBLE_VERSION' Dockerfile | awk '{print $3}')" -# Build the image -docker build --force-rm --pull --tag ${IMAGE_NAME}:${TAG} ${SCRIPT_DIR} +## SCRIPT USAGE +######################################## + +function usageShort() { + echo "Usage: $(basename ${0}) [OPTIONS]" +} + +function usageLong() { + + usageShort + + cat <<-EOF + + OPTIONS: + + -h, --help Print this help dialogue + -p, --purge Purge the image after build + + EOF + +} + +## OPTION / PARAMATER PARSING +######################################## + +PARSED_OPTIONS=$(getopt -n "${0}" -o hp -l "help,purge" -- "$@") + +eval set -- "${PARSED_OPTIONS}" + +while true; do + case "${1}" in + -h|--help) usageLong; exit ;; + -p|--purge) PURGE=true; shift ;; + --) shift; break ;; + esac +done + +## SCRIPT FUNCTIONS +######################################## + +function buildImage() { + docker build --force-rm --pull --tag ${IMAGE_NAME}:${TAG} ${SCRIPT_DIR} +} + +function purgeImage() { + docker rmi --force ${IMAGE_NAME}:${TAG} + echo "Purged image: ${IMAGE_NAME}:${TAG}" +} + +function main() { + buildImage; [[ "${PURGE}" == true ]] && purgeImage + echo "Successfully built ${IMAGE_NAME}:${TAG}" +} + +# MAKE IT SO +######################################## -# Notify user of success -echo "Sucessfully created image: ${IMAGE_NAME}:${TAG}" +main