Add argument parsing and usage
[docker-gc-build/.git] / release.sh
index 36f01f3eab779d4428989e3bbb36a01915771e1c..1bc9188e1b111a7b02f93ca74f0f9c822d0fb003 100755 (executable)
@@ -1,25 +1,61 @@
 #!/bin/bash
 
-set -e
+set -o errexit
+set -o nounset
+set -o pipefail
 
-DRY_RUN=' '
-
-[ ! -f `which gpg` ] && {
-    echo 2>&1 "You need to install gnupg: brew install gnupg"
+die() {
+    echo "$1" >&2
     exit 2
 }
 
-[ ! -f `which deb-s3` ] && {
-    echo 2>&1 "You need to install deb-s3: gem install deb-s3"
-    exit 2
+usage() {
+    cat <<EOF
+    ${0} [options] [arguments]
+
+    Arguments:
+
+    -b Set the S3 bucket name
+
+    Options:
+
+    -s Dry run (simulate)
+    -h Help
+EOF
+    exit 1
 }
 
-COMMIT=`git rev-parse --short HEAD`
-VERSION="2:`cat version.txt`~${COMMIT}"
+declare -a deps=(gpg deb-s3)
+
+for dep in ${deps[*]}
+do
+    [[ ! -f `which $dep` ]] && {
+        die "You need to install: $dep"
+    }
+done
+
+while getopts ":b:hs" opt; do
+    case ${opt} in
+        b ) BUCKET=${OPTARG}
+            ;;
+        h ) usage
+            ;;
+        s ) DRY_RUN="echo "
+            ;;
+        \?) echo "Invalid Option: -${OPTARG}" 1>&2; exit 1
+            ;;
+    esac
+done
+
+COMMIT=`(cd docker-gc && git rev-parse --short HEAD)`
+VERSION="2:`cat ${PWD}/docker-gc/version.txt`~${COMMIT}"
 TAG="gonitro/docker-gc-build:${COMMIT}"
 AWS_REGION=us-west-2
-BUCKET=nitro-apt-repo
-NITRO_GPG_KEY=C5075270
+BUCKET=${BUCKET:-nitro-apt-repo}
+DRY_RUN=${DRY_RUN:-}
+NITRO_GPG_KEY=`gpg --batch --search-keys  --with-colons infra-guild@gonitro.com 2>&1| sed -E -n 's/^pub:.*(........):.*:.*:.*::/\1/p'`
+
+printf  "[+] Using GPG %s for package signature\n" ${NITRO_GPG_KEY}
 
 $DRY_RUN docker build \
     -t ${TAG} \
@@ -30,8 +66,8 @@ $DRY_RUN docker build \
 
 $DRY_RUN docker run -v /tmp/:/tmp ${TAG} /bin/bash -c 'cp /docker-gc*.deb /tmp'
 
-package=`ls /tmp/*.deb`
-echo Debian Package generated into ${package}
+package=`ls /tmp/*.deb || :`
+printf "[+] Debian Package generated into '%s'\n" ${package}
 
 $DRY_RUN deb-s3 upload \
     --access-key-id=${AWS_ACCESS_KEY_ID} \
@@ -39,6 +75,6 @@ $DRY_RUN deb-s3 upload \
     --s3-region=${AWS_REGION} \
     --bucket=${BUCKET} \
     --sign=${NITRO_GPG_KEY} ${package} || exit 1
-echo Successfully uploaded package into ${BUCKET}
+printf "[+] Successfully uploaded package into %s\n" ${BUCKET}
 
 exit 0