#!/usr/bin/env bash set -e # Optional git tag? if [ $# -ge 1 ]; then git_tag="$1" shift fi saved_pwd=$PWD # Check we are within a git repo git_dir=$( git rev-parse --show-toplevel ) if [ -z "${git_dir}" ]; then echo "Cannot determine top-level directory for git repo" exit 1 fi # Change to git top-level cd ${git_dir} # Check we are in 'master' branch # branch_name=$( git symbolic-ref -q HEAD ) || echo "Cannot determine branch name" && exit 1 # branch_name=${branch_name##refs/heads/} # echo "Current git branch: ${branch_name}" # if [ "${branch_name}" != "master" ]; then # echo "Unexpected current branch '${branch_name}' - expecting 'master'" # exit 1 # fi # Determine project name project=$( perl -n -e 'if (m/(\w+)<.artifactId>/) { print $1; exit }' pom.xml $) if [ -z "${project}" ]; then echo "Unable to determine project name from pom.xml?" exit 1 fi # Extract git tag if [ -z "${git_tag}" ]; then git_tag=$( git tag --points-at HEAD ) if [ -z "${git_tag}" ]; then echo "Unable to extract git tag" exit 1 fi fi build_dir=/tmp/${project} commit_ts=$( git show --no-patch --format=%cI ) /bin/rm -fr ${build_dir} mkdir -p ${build_dir} cp target/${project}*.jar ${build_dir}/${project}.jar git show HEAD:log4j2.properties > ${build_dir}/log4j2.properties git show HEAD:start.sh > ${build_dir}/start.sh git show HEAD:stop.sh > ${build_dir}/stop.sh printf "{\n}\n" > ${build_dir}/settings.json gtouch -d ${commit_ts%%+??:??} ${build_dir} ${build_dir}/* rm -f ${saved_pwd}/${project}.zip (cd ${build_dir}/..; 7z a -r -tzip ${saved_pwd}/${project}.zip ${project}/)