X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Frev_control%2Fversion_control.sh;h=c41f7cdded99575cf8737ba96b1383f860867527;hb=63ea779000a06dd59febb62501f0e97812037a31;hp=dc04c0d91fa915702431c10c86291dc6f8a382a0;hpb=b48cd2e49fdd734a654c31b8fd70d4618ca560ac;p=feisty_meow.git diff --git a/scripts/rev_control/version_control.sh b/scripts/rev_control/version_control.sh index dc04c0d9..c41f7cdd 100644 --- a/scripts/rev_control/version_control.sh +++ b/scripts/rev_control/version_control.sh @@ -3,7 +3,8 @@ # these are helper functions for doing localized revision control. # this script should be sourced into other scripts that use it. -source "$FEISTY_MEOW_SCRIPTS/core/functions.sh" +source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" +source "$FEISTY_MEOW_SCRIPTS/tty/terminal_titler.sh" # the maximum depth that the recursive functions will try to go below the starting directory. export MAX_DEPTH=5 @@ -21,8 +22,8 @@ if [ ! -d "$TMP" ]; then mkdir -p $TMP fi if [ ! -d "$TMP" ]; then - echo "Could not create the temporary directory TMP in: $TMP" - echo "This script will not work properly without an existing TMP directory." + echo "could not create the temporary directory TMP in: $TMP" + echo "this script will not work properly without an existing TMP directory." fi this_host= @@ -108,15 +109,18 @@ function compute_modifier() function do_checkin() { local directory="$1"; shift + + save_terminal_title + do_update "$directory" if [ $? -ne 0 ]; then - echo "Repository update failed; this should be fixed before check-in." + echo "repository update failed; this should be fixed before check-in." return 1 fi pushd "$directory" &>/dev/null local retval=0 # normally successful. if [ -f ".no-checkin" ]; then - echo "Not checking in because found .no-checkin sentinel file." + echo "skipping check-in due to presence of .no-checkin sentinel file." elif [ -d "CVS" ]; then cvs ci . retval=$? @@ -138,12 +142,18 @@ function do_checkin() retval=1 fi popd &>/dev/null + + restore_terminal_title + return $retval } function do_diff { local directory="$1"; shift + + save_terminal_title + pushd "$directory" &>/dev/null local retval=0 # normally successful. @@ -157,18 +167,24 @@ function do_diff fi popd &>/dev/null + + restore_terminal_title + return $retval } function do_report_new { local directory="$1"; shift + + save_terminal_title + pushd "$directory" &>/dev/null local retval=0 # normally successful. # only update if we see a repository living there. if [ -f ".no-checkin" ]; then - echo "Not reporting mods because found .no-checkin sentinel file." + echo "skipping reporting due to presence of .no-checkin sentinel file." elif [ -d ".svn" ]; then # this action so far only makes sense and is needed for svn. bash $FEISTY_MEOW_SCRIPTS/rev_control/svnapply.sh \? echo @@ -179,6 +195,9 @@ function do_report_new fi popd &>/dev/null + + restore_terminal_title + return $retval } @@ -186,6 +205,9 @@ function do_report_new function checkin_list() { local list=$* + + save_terminal_title + for i in $list; do # turn repo list back into an array. eval "repository_list=( ${REPOSITORY_LIST[*]} )" @@ -198,6 +220,8 @@ function checkin_list() sep 7 done done + + restore_terminal_title } # takes out the first few carriage returns that are in the input. @@ -222,6 +246,9 @@ function squash_first_few_crs() function do_update() { directory="$1"; shift + + save_terminal_title + local retval=0 # plan on success for now. pushd "$directory" &>/dev/null if [ -d "CVS" ]; then @@ -238,12 +265,18 @@ function do_update() echo no repository in $directory fi popd &>/dev/null + + restore_terminal_title + return $retval } # gets all the updates for a list of folders under revision control. function checkout_list { list=$* + + save_terminal_title + for i in $list; do # turn repo list back into an array. eval "repository_list=( ${REPOSITORY_LIST[*]} )" @@ -252,7 +285,7 @@ function checkout_list { j="$i/$j" if [ ! -d $j ]; then if [ ! -z "$SHELL_DEBUG" ]; then - echo "No directory called $j exists." + echo "no directory called $j exists." fi continue fi @@ -261,6 +294,8 @@ function checkout_list { do_update $j done done + + restore_terminal_title } # provides a list of absolute paths of revision control directories @@ -286,9 +321,14 @@ function generate_rev_ctrl_filelist() # on each directory name, it performs the action (second parameter) provided. function perform_revctrl_action_on_file() { + +#hmmm: this doesn't capture any error returns! + local tempfile="$1"; shift local action="$1"; shift + save_terminal_title + while read -u 3 dirname; do if [ -z "$dirname" ]; then continue; fi pushd "$dirname" &>/dev/null @@ -298,6 +338,8 @@ function perform_revctrl_action_on_file() popd &>/dev/null done 3<"$tempfile" + restore_terminal_title + rm $tempfile }