diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/insert-changelog | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/bin/insert-changelog b/bin/insert-changelog index 58eff41..95c0673 100755 --- a/bin/insert-changelog +++ b/bin/insert-changelog @@ -7,6 +7,35 @@ OUTPUT="${1:-${PWD}/$RPMINFO.clog$$}" + +# Check whether a number input is valid +# Relying on global scope since this function isn't useful outside me +validnumber() +{ + case "$ROLE" in + 'doc' ) + VALIDCHARS='[^0-9.]' + MSG="Valid characters are digits and '.' only -- please re-enter." + ;; + 'rpm' ) + VALIDCHARS='[^0-9]' + MSG="Valid characters are digits only -- please re-enter." + ;; + * ) + echo "Role '$ROLE' is invalid, cowardly bail-out" + exit 1 + ;; + esac + if test -z "`echo $NUMBER | grep $VALIDCHARS`"; then + RETVAL=0 + else + echo "$MSG" + RETVAL=1 + fi + return $RETVAL +} + + echo -n "Change to [r]pm package or [d]ocument source? [r/D] " while test -z "$ROLE" ; do read -s -n 1 R @@ -34,15 +63,20 @@ else fi LASTREV=$(get_latest_revision "$ROLE") -if [ -z "$LASTREV" ]; then # this is the first revision for this role +if [ -z "$LASTREV" ] || [ "$LASTREV" = "0" ]; then +# this is the first revision for this role LASTREV=$ZEROREV fi -while test -z "$NUMBER"; do +while test -z "$NUMBER" ; do echo -n "Enter $REVDESC greater than $LASTREV: " read NUMBER + if validnumber ; then # Yes, it's perfectly safe to assume Python is present - if test `python -c "from distutils import version; a=version.LooseVersion('$LASTREV') ; b=version.LooseVersion('$NUMBER'); print b>a"` = "False"; then + if test `python -c "from distutils import version; a=version.LooseVersion('$LASTREV') ; b=version.LooseVersion('$NUMBER'); print b>a"` = "False"; then + NUMBER= + fi + else NUMBER= fi done |