improve the "all" script to notice if it has changed, and rerun
authorRudolf Polzer <rpolzer@nb-04.(none)>
Mon, 29 Mar 2010 13:17:50 +0000 (15:17 +0200)
committerRudolf Polzer <rpolzer@nb-04.(none)>
Mon, 29 Mar 2010 13:17:50 +0000 (15:17 +0200)
all

diff --git a/all b/all
index c062d95684653c1a63a93d5f63d1b403c71da1c7..a409faa0b7b9eff7f07c39a6ff582edd10ff98d3 100755 (executable)
--- a/all
+++ b/all
@@ -2,6 +2,8 @@
 
 set -e
 
+self=`cat "$0"`
+
 verbose()
 {
        echo "\e[1m+ $@\e[m"
@@ -120,6 +122,7 @@ case "$cmd" in
                        done
                        "$0" branch
                fi
+               export XONOTIC_FORBID_RERUN_ALL=1
                ;;
        branches)
                for d in $repos; do
@@ -128,6 +131,7 @@ case "$cmd" in
                        git branch -a | sed 's/^/  /; /->/d'
                        cd "$d0"
                done
+               export XONOTIC_FORBID_RERUN_ALL=1
                ;;
        push)
                for d in $repos; do
@@ -146,6 +150,7 @@ case "$cmd" in
                        fi
                        cd "$d0"
                done
+               export XONOTIC_FORBID_RERUN_ALL=1
                ;;
        compile)
                if [ -z "$MAKEFLAGS" ]; then
@@ -164,6 +169,7 @@ case "$cmd" in
                verbose make $MAKEFLAGS sv-debug
                verbose make $MAKEFLAGS cl-debug
                verbose make $MAKEFLAGS sdl-debug
+               export XONOTIC_FORBID_RERUN_ALL=1
                ;;
        run)
                client=-sdl
@@ -187,6 +193,7 @@ case "$cmd" in
                fi
                #verbose "darkplaces/darkplaces$client" -xonotic "$@"
                verbose "darkplaces/darkplaces$client" -nexuiz -customgamename Xonotic -customgamedirname1 data -customgamedirname2 "" -customgamescreenshotname xonotic -customgameuserdirname xonotic "$@"
+               export XONOTIC_FORBID_RERUN_ALL=1
                ;;
        each|foreach)
                for d in $repos; do
@@ -194,6 +201,7 @@ case "$cmd" in
                        verbose "$@"
                        cd "$d0"
                done
+               export XONOTIC_FORBID_RERUN_ALL=1
                ;;
        *)
                echo "Usage:"
@@ -205,5 +213,20 @@ case "$cmd" in
                echo "  $0 compile"
                echo "  $0 run <client> <options>"
                echo "  $0 each <command>"
+               export XONOTIC_FORBID_RERUN_ALL=1
                ;;
 esac
+
+self_new=`cat "$0"`
+if [ x"$self" != x"$self_new" ]; then
+       echo "./all has changed."
+       if [ -z "$XONOTIC_FORBID_RERUN_ALL" ]; then
+               echo "Rerunning the requested operation to make sure."
+               export XONOTIC_FORBID_RERUN_ALL=1
+               "$0" update
+               "$0" "$@"
+       else
+               echo "Please try $0 update, and then retry your requested operation."
+               exit 1
+       fi
+fi