seems to be complaining about something...
[feisty_meow.git] / scripts / rev_control / getme.sh
index 4acd84e7b00683b94d8dce04669776cb3750045c..c2bc0cfa641f99d17f5bdfbf0ae8c3eb151a9670 100644 (file)
@@ -1,11 +1,15 @@
 #!/bin/bash
 
-# gets all of fred's revision control folders out.
+# gets any updates for the repository folders present in the REPOSITORY_LIST variable.
 
-source "$SHELLDIR/rev_control/rev_control.sh"
+source "$FEISTY_MEOW_SCRIPTS/rev_control/rev_control.sh"
 
+# trickery to ensure we can always update this file, even when the operating system has some
+# rude behavior with regard to file locking (ahem, windows...).
 if [ "$(pwd)" != "$TMP" ]; then
-#  echo "Moving to the TMP directory to avoid file access conflicts..."
+  if [ ! -z "$SHELL_DEBUG" ]; then
+    echo "Moving to the TMP directory to avoid file access conflicts..."
+  fi
   new_name="$TMP/zz_$(basename $0)"
   cp -f "$0" "$new_name"
   if [ $? -ne 0 ]; then
@@ -17,75 +21,68 @@ if [ "$(pwd)" != "$TMP" ]; then
   exec "$new_name"
 fi
 
-export TMPO_CHK=$TMP/zz_chk.log
-
 # selects the checkout method based on where we are (the host the script runs on).
 function do_update()
 {
   directory="$1"; shift
 
-  # get the right modifier for the directory name.
-  compute_modifier "$directory" "out"
-
-  is_svn=1
-  checkout_cmd="echo unknown repository for $directory...  "
-
-  if [ "$home_system" == "true" ]; then
-    checkout_cmd="svn update ."
-  fi
-
-  # then we pretty much ignore what we guessed, and just use the
-  # appropriate command for what we see inside the directory.
-  if [ -d "$directory/CVS" ]; then
-    checkout_cmd="cvs co -P -kb "
-    modifier=  # reset the modifier, since we know we have cvs.
-    is_svn=0
-  elif [ -d "$directory/.svn" ]; then
-    checkout_cmd="svn update ."
-  fi
-
-  if [ $is_svn -eq 1 ]; then
-    pushd "$directory" &>/dev/null
-    $checkout_cmd
-    popd &>/dev/null
+  if [ -d "CVS" ]; then
+    cvs update .
+  elif [ -d ".svn" ]; then
+    svn update .
+  elif [ -d ".git" ]; then
+    git pull
   else
-    $checkout_cmd "$modifier$directory"
+    echo unknown repository for $directory...
   fi
 }
 
+# gets all the updates for a list of folders under revision control.
 function checkout_list {
   list=$*
   for i in $list; do
-#this list should be part of the configuration file, not part of script.
-    for j in $i/feisty_meow $i/hoople $i/hoople2 $i/quartz $i/web $i/yeti $i/xsede/xsede_tests $i/xsede/code/cak0l/trunk ; do
+    # turn repo list back into an array.
+    eval "repository_list=( ${REPOSITORY_LIST[*]} )"
+    for j in "${repository_list[@]}"; do
+      # add in the directory for our purposes here.
+      j="$i/$j"
       if [ ! -d $j ]; then
-#        echo no directory called $j exists
+        if [ ! -z "$SHELL_DEBUG" ]; then
+          echo "No directory called $j exists."
+        fi
         continue
       fi
 
-      pushd $i &>/dev/null
+      pushd $j &>/dev/null
       echo -n "retrieving '$j'...  "
       do_update $j
-#$(basename $j)
       popd &>/dev/null
     done
   done
 }
 
+##############
+
+export TMPO_CHK=$TMP/zz_chk.log
+
 rm -f "$TMPO_CHK"
 
 # perform the checkouts as appropriate per OS.
 if [ "$OS" != "Windows_NT" ]; then
   checkout_list $HOME 2>&1 | tee -a "$TMPO_CHK"
 else
-  checkout_list c:/ c:/home d:/ d:/home e:/ e:/home f:/ f:/home g:/ g:/home h:/ h:/home i:/ i:/home 2>&1 | tee -a "$TMPO_CHK"
+  checkout_list $HOME c:/ d:/ e:/ 2>&1 | tee -a "$TMPO_CHK"
 fi
 
 less $TMPO_CHK
 
+##############
+
 # we now regenerate the scripts after getme, to ensure it's done automatically.
-bash "$SHELLDIR/core/bootstrap_shells.sh"
-perl "$SHELLDIR/core/generate_aliases.pl"
+bash "$FEISTY_MEOW_SCRIPTS/core/bootstrap_shells.sh"
+perl "$FEISTY_MEOW_SCRIPTS/core/generate_aliases.pl"
 echo
 nechung
 
+##############
+