A lame start for a `make release' helper.

Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Cristian Ionescu-Idbohrn 2013-05-09 00:55:44 +02:00 committed by Dirk Hohndel
parent a5b8687003
commit de101410cf
2 changed files with 81 additions and 0 deletions

View file

@ -312,4 +312,8 @@ clean:
$(VERSION_FILE) $(VERSION_FILE)
rm -rf share .dep rm -rf share .dep
release:
@scripts/check-version -cdr $(VERSION_STRING)
# Add other rules (like tar-command) bellow
-include $(DEPS) -include $(DEPS)

77
scripts/check-version Executable file
View file

@ -0,0 +1,77 @@
#!/bin/sh
# $1 - version string
# options:
# -c colored grep
# -d debug
# -r release (exit status error; when called from Makefile)
set -eu
#set -x
files="Documentation/user-manual.txt Makefile README ReleaseNotes.txt"
whine() {
echo "$0: $*" >&2
}
croak() {
whine "$*"
exit 1
}
color=n
debug=n
release=n
while getopts cdr opt; do
case $opt in
c)
color=y
;;
d)
debug=y
;;
r)
release=y
;;
*)
croak "invalid option"
;;
esac
done
shift $(($OPTIND - 1))
if [ $debug = y ]; then
opts=-n
else
opts=-q
fi
[ $color = n ] || opts="${opts:+ }--color"
v=${1:-}
case $v in
*-*)
# Ignore development versions
if [ $release = y ]; then
croak "'$v' not a release tag"
else
exit 0
fi
;;
''|*[!.0-9]*)
croak "invalid version string '$v'"
;;
esac
sts=0
whine "checking for version $v"
for f in $files; do
grep $opts -EHio "(VERSION=|subsurface[[:blank:]]+)?\<v?$v\>" $f || {
msg="'$f' may need updating"
if [ $release = y ]; then
croak "$msg"
else
whine "$msg"
fi
}
done