#!/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
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.
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
+##############
+