X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Flibzypp.git;a=blobdiff_plain;f=mkChangelog;h=52cb498d6c1e988f0dd1092a32a3a4cac0a1af99;hp=96409ed4df363709bb05314333040bb20187711b;hb=HEAD;hpb=e24f6d91d336cc5d14ee33f36cfac2d52312d85e diff --git a/mkChangelog b/mkChangelog index 96409ed..6d4303e 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 zypp specific. - function usage() { exec >&2 -cat </dev/null || { + Recho "!!!" + Recho "!!! There is no LAST_RELEASE tag '$LAST_RELEASE'. Check manually. " + Recho "!!! (git tag -m 'tagging $LAST_RELEASE' '$LAST_RELEASE' ?commit?)" + Recho "!!!" + exit 8 +} + +if [ "$DRYRUN" == "1" ]; then + newchangesentry + sameVersion && { + Becho "!!! Version is unchanged at $LAST_RELEASE ($LAST_COMPAT)." + } + exit 0 +fi + +# check version file +# +while true; do + # $LAST_RELEASE + # $LAST_COMPAT + # $THIS_RELEASE + # $THIS_COMPAT + sameVersion && { + newchangesentry + Becho "!!! Version is unchanged at $LAST_RELEASE ($LAST_COMPAT)." + read -n 1 -p "$(Gecho "(a)bort, (c)ontinue, (P) patch, (M) minor, (I) incompat minor, (e)dit version [e]: ")" RES + echo + case "${RES:-e}" in + [eE]*) + Edit $VERSIONFILE + eval $(getversion) + continue + ;; + [cC]) + Becho "!!! Leave $VERSIONFILE untouched" + break + ;; + [P]) + setversion LIBZYPP_PATCH $(($THIS_PATCH + 1)) + eval $(getversion) + continue + ;; + [M]) + setversion LIBZYPP_MINOR $(($THIS_MINOR + 1)) + setversion LIBZYPP_PATCH 0 + eval $(getversion) + continue + ;; + [I]) + setversion LIBZYPP_COMPATMINOR $(($THIS_MINOR + 1)) + setversion LIBZYPP_MINOR $(($THIS_MINOR + 1)) + setversion LIBZYPP_PATCH 0 + eval $(getversion) + continue + ;; + *) + errexit "aborted" + ;; + esac + } + break +done + +# prepare changes file +# TMPFILE=$(mktemp) -exec 3>&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 + Edit $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 [e]: ")" RES echo - case "$RES" in + case "${RES:-e}" 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 + chmod 644 $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 } - - 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