#!/usr/bin/env bash function error_handler() { >&2 echo "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}." exit "$2" } trap 'error_handler ${LINENO} $?' ERR set -o errtrace -o errexit -o nounset -o pipefail # HELP: git adds and commits the entire BPMN models directory, including all process groups bpmn_models_absolute_dir="$1" git_commit_message="$2" git_branch="$3" git_commit_username="$4" git_commit_email="$5" if [[ -z "${5:-}" ]]; then >&2 echo "usage: $(basename "$0") [bpmn_models_absolute_dir] [git_commit_message] [git_branch] [git_commit_username] [git_commit_email]" exit 1 fi cd "$bpmn_models_absolute_dir" git add . # https://unix.stackexchange.com/a/155077/456630 if [ -z "$(git status --porcelain)" ]; then echo "No changes to commit" else git config --local user.name "$git_commit_username" git config --local user.email "$git_commit_email" git commit -m "$git_commit_message" git push --set-upstream origin "$git_branch" fi