summaryrefslogtreecommitdiff
path: root/support/scripts/version-manager.sh
diff options
context:
space:
mode:
Diffstat (limited to 'support/scripts/version-manager.sh')
-rw-r--r--support/scripts/version-manager.sh150
1 files changed, 0 insertions, 150 deletions
diff --git a/support/scripts/version-manager.sh b/support/scripts/version-manager.sh
deleted file mode 100644
index 9c7976872f..0000000000
--- a/support/scripts/version-manager.sh
+++ /dev/null
@@ -1,150 +0,0 @@
-########################################################-*-Shell-script-*-####
-# Version-Manager Function
-##############################################################################
-# $Id$
-
-source ${0%/*}/stdlib.sh;
-
-##############################################################################
-# version-manager
-
-function version-manager-usage() {
- echo "Usage: $program <version-file> update";
- echo " $program <version-file> increment";
- echo " $program <version-file> set <version-value>";
-}
-
-function version-manager-args() {
- case "$1" in
- -? | -h | --help ) $program-usage; exit 0;;
- --verbose ) verbose=true; return 1;;
- --version ) echo "$program (bash script) $version";exit 0;;
- -* ) args-option-unknown "$@";;
- * ) args-append-array args "$@";;
- esac;
-}
-
-function version-manager-compose() {
- [ $# = 5 ] || abort "internal error";
- local variable="$1"; shift 1;
- local value="$1.$2.$3.$4"; shift 4;
- eval "$variable=\"\$value\"";
-}
-
-function version-manager-decompose() {
- [ $# = 2 ] || abort "internal error";
- local array="$1"; shift 1;
- local value="$1"; shift 1;
- local v0=`expr "$value" : '\([0-9]*\)\.[0-9]*\.[0-9]*\.[0-9]*$'`;
- local v1=`expr "$value" : '[0-9]*\.\([0-9]*\)\.[0-9]*\.[0-9]*$'`;
- local v2=`expr "$value" : '[0-9]*\.[0-9]*\.\([0-9]*\)\.[0-9]*$'`;
- local v3=`expr "$value" : '[0-9]*\.[0-9]*\.[0-9]*\.\([0-9]*\)$'`;
- eval "$array[0]=\"\$v0\"";
- eval "$array[1]=\"\$v1\"";
- eval "$array[2]=\"\$v2\"";
- eval "$array[3]=\"\$v3\"";
-}
-
-function version-manager-check-syntax() {
- [ $# = 1 ] || abort "internal error";
- local value="$1"; shift 1;
- expr "$value" : '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$' 1> /dev/null 2>&1;
-}
-
-function version-manager-check-order() {
- [ $# = 8 ] || abort "internal error";
- local l0="$1"; local l1="$2"; local l2="$3"; local l3="$4"; shift 4;
- local r0="$1"; local r1="$2"; local r2="$3"; local r3="$4"; shift 4;
- [ $l0 -lt $r0 ] && return 0; [ $l0 -gt $r0 ] && return 1;
- [ $l1 -lt $r1 ] && return 0; [ $l1 -gt $r1 ] && return 1;
- [ $l2 -lt $r2 ] && return 0; [ $l2 -gt $r2 ] && return 1;
- [ $l3 -lt $r3 ] && return 0; [ $l3 -gt $r3 ] && return 1;
- return 1;
-}
-
-function version-manager() {
- local program="$FUNCNAME";
- local version='$Revision$';
- local -a args;
- args-loop "$@";
-
- # get file name and command name
- [ ${#args[@]} -ge 2 ] || { $program-usage 1>&2; exit 1; }
- local file="${args[0]}";
- local command="${args[1]}";
-
- # check command name and argument count
- case "$command" in
- update ) local nargs=0;;
- increment ) local nargs=0;;
- set ) local nargs=1;;
- * ) $program-usage 1>&2; exit 1;;
- esac;
- [ ${#args[@]} = $[$nargs+2] ] || { $program-usage 1>&2; exit 1; }
-
- # check new value syntax, if command is "set"
- if [ "$command" = "set" ]; then
- local new_value="${args[2]}";
- if ! $program-check-syntax "$new_value.0"; then
- local -a error;
- error[0]="version value '$new_value' does not conform";
- error[1]="to version syntax <int>.<int>.<int>";
- abort "${error[*]}";
- fi;
- new_value="$new_value.0";
- fi;
-
- # check file existence
- [ -f "$file" ] || abort "could not find file '$file'";
-
- # update version file
- run rm -f "$file";
- run cvs -Q update "$file";
-
- # get old value
- local old_value=`tail -1 "$file"`;
-
- # check old value syntax
- if ! $program-check-syntax "$old_value"; then
- local -a error;
- error[0]="version value '$old_value' in file '$file' does not conform";
- error[1]="to version syntax <int>.<int>.<int>.<int>";
- abort "${error[*]}";
- fi;
-
- # terminate if command is "update"
- [ "$command" = "update" ] && exit 0;
-
- # compute old and new arrays
- local -a old_array;
- local -a new_array;
- $program-decompose old_array "$old_value";
- if [ "$command" = "increment" ]; then
- $program-decompose new_array "$old_value";
- new_array[3]=$[${new_array[3]}+1];
- else
- $program-decompose new_array "$new_value";
- fi;
-
- # check order of old and new values
- if ! $program-check-order "${old_array[@]}" "${new_array[@]}"; then
- abort "new version must be greater than '$old_value'";
- fi;
-
- # compute new value
- local new_value;
- $program-compose new_value "${new_array[@]}";
-
- # rewrite version file
- runO "$file~" sed -es@"$old_value"@"$new_value"@ "$file";
- run mv "$file~" "$file";
-
- # commit version file
- runO /dev/null cvs -Q commit -m "Set version to $new_value" "$file";
-
- if [ "$command" = "set" ]; then
- echo "Successfully changed version to $new_value";
- fi;
-}
-
-##############################################################################