From da2da828d400f3399b3b9c96dc69172a49ee309e Mon Sep 17 00:00:00 2001 From: Michael Andres Date: Tue, 29 Nov 2011 17:45:07 +0100 Subject: [PATCH] new mkChangelog script also creating git version tags --- VERSION.cmake | 19 ++--- mkChangelog | 222 +++++++++++++++++++++++++++++++++------------------------- 2 files changed, 136 insertions(+), 105 deletions(-) diff --git a/VERSION.cmake b/VERSION.cmake index 8cb69e6..9c0a251 100644 --- a/VERSION.cmake +++ b/VERSION.cmake @@ -19,15 +19,18 @@ # #======= -# - Update version according to your changes, -# but based on 'LAST RELEASED:' below. I.e -# there's no need to increase VERSION_PATCH -# if it already differs from 'LAST RELEASED:'. -# # - MOST IMPORTANT: -# Before you submitt to autobuild, remember the -# new version in 'LAST RELEASED:', and add a -# note in the changes file. +# - Before you submitt to git: +# - Remember the new version in 'LAST RELEASED:' +# - State the new version in the changes file by adding a line +# "- version MAJOR.MINOR.PATCH" +# - Commit changes and version files together in a separate +# commit using -m 'changes MAJOR.MINOR.PATCH' +# - Tag the above commit with 'MAJOR.MINOR.PATCH' using +# -m "tagging MAJOR.MINOR.PATCH". +# +# - Consider calling ./mkChangelog to assist you. +# See './mkChangelog -h' for help. # SET(VERSION_MAJOR "1") SET(VERSION_MINOR "6") diff --git a/mkChangelog b/mkChangelog index e7c57db..aad95f8 100755 --- a/mkChangelog +++ b/mkChangelog @@ -1,80 +1,42 @@ #! /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 - echo "Error: $@" + Recho "Error: $@" exit 1 } -export LC_ALL="" -EDITOR=${EDITOR:-vi} - -TDIR=$(dirname $0) -test -n "$TDIR" && cd $TDIR - -CHANGESFILE=$(ls package/*.changes) -test -f "$CHANGESFILE" || errexit "No changes file '$CHANGESFILE'" - -VERSIONFILE="VERSION.cmake" -test -f "$VERSIONFILE" || errexit "No version file '$VERSIONFILE'" - -LANG="en" - -## Version.cmake tags in getversion() are still zypper specific. - function usage() { exec >&2 -cat <&1- -exec >$TMPFILE -echo "-------------------------------------------------------------------" -echo "$(date) - $EMAIL" -echo "" -echo "- " -echo "$GOTVERSION" -echo "" -cat $CHANGESFILE -exec >&3 +trap " [ -f \"$TMPFILE\" ] && /bin/rm -f -- \"$TMPFILE\" " 0 1 2 3 13 15 +{ newchangesentry; cat $CHANGESFILE; } >$TMPFILE RES=e while [ "$RES" == "e" ]; do $EDITOR $TMPFILE echo - NEWREL=$(grep '#---delete-or-release---#' $TMPFILE) - test -n "$NEWREL" && echo "$NEWREL" - read -n 1 -p "(a)bort, (c)ontinue, (e)dit : " RES - 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 ;; - [cC]) - test -n "$NEWREL" && { - echo "Remember new release in $VERSIONFILE" - sed -i 's/^.*#---delete-or-release---#.*RELEASE:/- version/' $TMPFILE - NEWREL=$(sed 's/^.*#---delete-or-release---#.*RELEASE:/# LAST RELEASED:/' <<<"$NEWREL") - sed -i "s/^# LAST RELEASED:.*$/$NEWREL/" $VERSIONFILE + [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/" $VERSIONFILE + git add "$CHANGESFILE" "$VERSIONFILE" \ + && git commit -m "changes $THIS_RELEASE" \ + && git tag -m "tagging $THIS_RELEASE" "$THIS_RELEASE" HEAD + Becho "!!!" + Becho "!!! Do not forget to push the commit and the tag: $(Gecho git push --tags)" + Becho "!!!" + fi } - - echo "Store new $CHANGESFILE" - cp $TMPFILE $CHANGESFILE - - echo "$(sed 's/^.*#---delete-or-release---#.*RELEASE:/# CURRENT RELEASE:/' <<<"$GOTVERSION")" - awk '{print}/^----------/{n=n+1; if ( n == 2 ) exit 0; }' $CHANGESFILE - ;; *) - echo "Leave $CHANGESFILE untouched" + Becho "!!! Leave $CHANGESFILE untouched" ;; esac done - -rm -f $TMPFILE -- 2.7.4