#! /bin/bash function Recho() { echo -e "\e[0;31m""$@""\e[0m"; } function Gecho() { echo -e "\e[0;32m""$@""\e[0m"; } function Becho() { echo -e "\e[0;34m""$@""\e[0m"; } function errexit() { exec >&2 Recho "Error: $@" exit 1 } function usage() { exec >&2 cat <$TMPFILE RES=e while [ "$RES" == "e" ]; do $EDITOR $TMPFILE echo awk '{print}/^----------/{n=n+1; if ( n == 2 ) exit 0; }' $TMPFILE read -n 1 -p "$(Gecho "(a)bort, (c)ontinue, (s)ubmitt, (e)dit : ")" RES echo case "$RES" in [eE]*) RES=e ;; [cCsS]) Becho "!!! Store new $CHANGESFILE" mv $TMPFILE $CHANGESFILE test "$RES" == "s" && { if [ "$LAST_RELEASE" == "$THIS_RELEASE" ]; then git add "$CHANGESFILE" && git commit -m "changes" else Becho "!!! Remember new version $THIS_RELEASE in $VERSIONFILE" sed -i "s/^# LAST RELEASED:.*$/# LAST RELEASED: $THIS_RELEASE ($THIS_COMPAT)/" $VERSIONFILE if git add "$CHANGESFILE" "$VERSIONFILE" \ && git commit -m "changes $THIS_RELEASE ($THIS_COMPAT)" \ && git tag -m "tagging $THIS_RELEASE" "$THIS_RELEASE" HEAD; then Becho "!!!" Becho "!!! Do not forget to push the commit and the tag: $(Gecho git push --tags origin HEAD)" Becho "!!!" else Recho "!!!" Recho "!!! Commit failed. Check manually. (git reset HEAD~)" Recho "!!!" exit 9 fi fi } ;; *) Becho "!!! Leave $CHANGESFILE untouched" ;; esac done