X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Farchival%2Fgeneral_updater.sh;h=3ae2d1681839e47959a0380941f19bf1737afbd7;hb=81a3f3b9ce06d5e9f179da2dcfdac07ec1fe0ac4;hp=2af8e568116384229e48d109c70ef71dd9a1978f;hpb=fbfb7321ab7a30cde5b99047854e18841d280f29;p=feisty_meow.git diff --git a/scripts/archival/general_updater.sh b/scripts/archival/general_updater.sh index 2af8e568..3ae2d168 100644 --- a/scripts/archival/general_updater.sh +++ b/scripts/archival/general_updater.sh @@ -5,12 +5,65 @@ # if there is a target folder of the appropriate name already on the backup medium. source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" -source "$FEISTY_MEOW_SCRIPTS/archival/shared_updater_parts.sh" +# given a location in the filesystem, we will go to that location and attempt to +# update any revision control repositories stored there to the latest versions. +function update_source_folders() +{ + folder="$1"; shift + if [ ! -d "$folder" ]; then + echo "The folder '$folder' does not exist, so skipping repository update there." + return; + fi + echo getting latest codes in $folder... + pushd "$folder" + if [ $? -ne 0 ]; then + echo Changing to the folder $folder failed. + exit 1 + fi + bash "$FEISTY_MEOW_SCRIPTS/rev_control/rcheckin.sh" + if [ $? -ne 0 ]; then + echo Checking out the latest codes has failed somehow for $folder. + exit 1 + fi + popd +} + +# this attempts to copy all the contents in a folder called "from" into a folder +# called "to". it's a failure for the "from" folder to not exist, but the "to" +# is allowed to not exist (in which case we don't try to synch to it). +function synch_directory_to_target() +{ + local from="$1"; shift + local to="$1"; shift + + sep + + if [ ! -d "$from" ]; then + echo "skipping synch on missing source directory $from; this is not normal!" + exit 1 + fi + if [ ! -d "$to" ]; then + echo "skipping synch into non-existent directory $to" + return + fi + + echo "synching from $from into $to" + netcp "$from"/* "$to"/ + if [ $? -ne 0 ]; then + echo "The synchronization of $from into $to has failed." + exit 1 + fi +} + +# the uber controller method that does the "hard" work of updating. +# any items from the ARCHIVE_COLLECTION_LIST that are on the target will be +# updated. any items found on the target matching the members of the +# SOURCE_COLLECTION_LIST will be treated as code hierarchies and updated. function update_archive_drive() { - local target_folder="$1"; shift - # where we're backing up to. + local target_folder="$1"; shift # where we're backing up to. + local currdir # loop variable. sep @@ -31,14 +84,14 @@ function update_archive_drive() # update source code if present. echo getting latest fred repositories... pushd "$target_folder" - update_source_folders $SOURCE_HIERARCHY_LIST -#hmmm:clean -#extra_brain interbrane -#need source list + for currdir in $SOURCE_HIERARCHY_LIST; do + update_source_folders $currdir + done sep - echo Updated all expected portions of the targets successfully. + echo successfully updated all expected portions of the target drive at: + echo " $target_folder" }