diff options
-rwxr-xr-x | Tools/scripts/bump-revision.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Tools/scripts/bump-revision.sh b/Tools/scripts/bump-revision.sh new file mode 100755 index 000000000000..3b22b8863e56 --- /dev/null +++ b/Tools/scripts/bump-revision.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +# +# bump-revision.sh category/portname category/portname ... +# Bump PORTREVISION if it exists or create it with number 1 if it does not +# +# ---------------------------------------------------------------------------- +# "THE BEER-WARE LICENSE" (Revision 42, (c) Poul-Henning Kamp): +# Bartek Rutkowski <robak@FreeBSD.org> wrote this file. As long as you retain +# this notice you can do whatever you want with this stuff. If we meet some +# day, and you think this stuff is worth it, you can buy me a beer in return. +# +# Bartek Rutkowski +# ---------------------------------------------------------------------------- +# +# $FreeBSD$ +# +# MAINTAINER= robak@FreeBSD.org + +# +# functions +# + +printc () { +# $1 - msg is obligatory, $2 - color (red/green)of the message, default if not passed + if [ -t 1 ]; then + if [ $# -eq 2 ]; then + if [ $2 == "red" ]; then + echo -e "\033[1;31m$1\033[m" + elif [ $2 == "green" ]; then + echo -e "\033[1;32m$1\033[m" + else + echo "$1" + fi + fi + else + echo $1 + fi +} + +# +# main loop +# + +tempfile=$(mktemp) +trap "rm -f $tempfile" 0 1 2 3 15 + +while [ $# -gt 0 ] +do + if [ -f "$1/Makefile" ]; then + echo -n > $tempfile + revision=`grep "^PORTREVISION?\?=" "$1/Makefile"` + if [ $? == 0 ]; then + printc "$1: $revision found, bumping it by 1." "green" + awk -F "\t" '/^PORTREVISION\??=/{ gsub ($2,$2+1) };{ print }' "$1/Makefile" > $tempfile + cat $tempfile > "$1/Makefile" + else + printc "$1: PORTREVISION not found, adding PORTREVISION=1" "red" + awk '/^PORTVERSION\??=\t/{print;print "PORTREVISION=\t1";next}1' "$1/Makefile" > $tempfile + cat $tempfile > "$1/Makefile" + fi + else + printc "$1: might not be a port directory as $1/Makefile is missing!" "red" + fi + shift +done |