updated for the new version of module tools - uses 2 separate workdirs for 4.3 and 5.0
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Fri, 18 Jun 2010 07:35:11 +0000 (09:35 +0200)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Fri, 18 Jun 2010 07:35:11 +0000 (09:35 +0200)
scripts/all-modules-push.sh
scripts/all-modules.sh

index 8df2491..1345375 100755 (executable)
@@ -2,4 +2,4 @@
 #
 # retrieve the diff/version stuff from Princeton, as the computation over there is *much* faster
 #
-rsync -a "$@" ~/all-modules/ root@build.onelab.eu:/build/modules/
+rsync --archive --delete "$@" ~/all-modules/[45]* --exclude .diff\* --exclude .version\* --delete-excluded root@build.onelab.eu:/build/modules/
index 868acd0..b0f5abf 100755 (executable)
 
 COMMAND=$(basename $0)
 
+# make sure the cyclic tasks do not interfere with manual usage
+WORKDIR_SVN=${HOME}/all-modules-svn
+WORKDIR_GIT=${HOME}/all-modules-git
+
 # make the command usable as non-root user at Princeton for more efficiency
 if [ "$(id -u)" == "0" ] ; then
     OUTPUT=/build/modules/slow
     LOCK=/var/run/all-modules.pid
-    MODULES_OPTION=""
 else
     OUTPUT=~/all-modules
     LOCK=~/all-modules.run
-    # make sure the cyclic tasks do not interfere with manual usage
-    MODULES_OPTION="-w ${HOME}/all-modules-working-dir"
 fi
 
 function do_update() {
     build_dir=$1; shift
     if [ -f $build_dir/auto-update.sh ] ; then
        $build_dir/auto-update.sh
+    elif [ -d $build_dir/.git ] ; then
+       ( cd $build_dir; git pull > .update.log 2>&1 )
     else
        ( cd $build_dir; svn update > .update.log 2>&1 )
     fi
 }
 
-# usage: do_version dir name 
+# usage: do_version dir workdir wwwname 
 function do_version () {
     build_dir=$1; shift
-    name=$1; shift
+    workdir=$1; shift
+    wwwname=$1; shift
 
-    out_dir=$OUTPUT/$name
+    out_dir=$OUTPUT/$wwwname
     out_file=$out_dir/version.html
     out_tmp=$out_dir/.version.html
     
     mkdir -p $out_dir
-    $build_dir/module-version $MODULES_OPTION --www $name -a &> $out_tmp
+    $build_dir/module-version $VERBOSE -w $workdir --www $wwwname -a &> $out_tmp
     mv -f $out_tmp $out_file
 }
 
-# usage: do_version dir name 
+# usage: do_version dir workdir wwwname 
 function do_diff () {
     build_dir=$1; shift
-    name=$1; shift
+    workdir=$1; shift
+    wwwname=$1; shift
 
-    out_dir=$OUTPUT/$name
+    out_dir=$OUTPUT/$wwwname
     out_file=$out_dir/diff.html
     out_tmp=$out_dir/.diff.html
     
     mkdir -p $out_dir
-    $build_dir/module-diff $MODULES_OPTION --www $name -a &> $out_tmp
+    $build_dir/module-diff $VERBOSE -w $workdir --www $wwwname -a &> $out_tmp
     mv -f $out_tmp $out_file
 
 }
@@ -79,7 +84,7 @@ function main () {
        case "$1" in 
            -f) rm -f $LOCK ;;
            -i) ls -l $LOCK ; exit 0 ;;
-           -v) set -x ;;
+           -v) set -x ; VERBOSE=-v ;;
            *) usage; exit 1;;
        esac
        shift
@@ -89,12 +94,14 @@ function main () {
     
     echo $$ > $LOCK
 
+# the 5.0 flavour now comes with a non-compatible flavour of the module-tools
+# and we need 2 distinc workdirs
     do_update  ~/svn-build
-    do_version ~/svn-build     5.0 
-    do_diff    ~/svn-build     5.0
+    do_version ~/svn-build     $WORKDIR_GIT 5.0 
+    do_diff    ~/svn-build     $WORKDIR_GIT 5.0
     do_update  ~/svn-build-4.3
-    do_version ~/svn-build-4.3 4.3 
-    do_diff    ~/svn-build-4.3 4.3
+    do_version ~/svn-build-4.3 $WORKDIR_SVN 4.3 
+    do_diff    ~/svn-build-4.3 $WORKDIR_SVN 4.3
 
     rm $LOCK