modified error handling methods
[feisty_meow.git] / scripts / core / functions.sh
index 189dac016546307e7e665e05f816285e4389cbf9..fc5ce4ebc677daf6270acb850cda42688c803eaf 100644 (file)
@@ -141,20 +141,20 @@ if [ -z "$skip_all" ]; then
   # checks the result of the last command that was run, and if that failed,
   # then this complains and exits from bash.  the function parameters are
   # used as the message to print as a complaint.
-  function test_or_die()
+  function exit_on_error()
   {
     if [ $? -ne 0 ]; then
-      echo -e "\n\naction failed: $*\n\nExiting script..."
+      echo -e "\n\naction failed: $*\n\n*** Exiting script..."
       error_sound
       exit 1
     fi
   }
 
-  # like test_or_die, but will keep going after complaining.
-  function test_or_continue()
+  # like exit_on_error, but will keep going after complaining.
+  function continue_on_error()
   {
     if [ $? -ne 0 ]; then
-      echo -e "\n\nerror occurred: $*\n\nContinuing script..."
+      echo -e "\n\nerror occurred: $*\n\n=> Continuing script..."
       error_sound
     fi
   }
@@ -452,6 +452,8 @@ if [ -z "$skip_all" ]; then
     unalias CORE_ALIASES_LOADED &>/dev/null
     unset -f function_sentinel 
     # reload feisty meow environment in current shell.
+    echo "reloading the feisty meow scripts."
+    echo
     source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
     # run nechung oracle to give user a new fortune.
     nechung
@@ -465,15 +467,15 @@ if [ -z "$skip_all" ]; then
     local custom_user="$1"; shift
     if [ -z "$custom_user" ]; then
       # use our default example user if there was no name provided.
-      custom_user=fred
+      custom_user=$(logname)
     fi
 
     save_terminal_title
 
     if [ ! -d "$FEISTY_MEOW_SCRIPTS/customize/$custom_user" ]; then
-      echo "The customization folder provided for $custom_user should be:"
-      echo "  '$FEISTY_MEOW_SCRIPTS/customize/$custom_user'"
-      echo "but that folder does not exist.  Skipping customization."
+      echo "The customization folder for '$custom_user' would be:"
+      echo "  $FEISTY_MEOW_SCRIPTS/customize/$custom_user"
+      echo "but that folder does not exist.  Skipping recustomization."
       return 1
     fi
 
@@ -482,7 +484,7 @@ if [ -z "$skip_all" ]; then
 #hmmm: better yet actually, just don't complain on freaking cygwin, since that's where this happens
     chown -R "$(logname):$(logname)" \
         "$FEISTY_MEOW_LOADING_DOCK"/* "$FEISTY_MEOW_GENERATED_STORE"/* 2>/dev/null
-    test_or_continue "chowning to $(logname) didn't happen."
+    continue_on_error "chowning to $(logname) didn't happen."
 
     regenerate >/dev/null
     pushd "$FEISTY_MEOW_LOADING_DOCK/custom" &>/dev/null
@@ -499,18 +501,19 @@ or if you're on cygwin, then try this (if apt-cyg is available):\n
     if [ ${#incongruous_files} -ge 2 ]; then
       echo "cleaning unknown older overrides..."
       perl "$FEISTY_MEOW_SCRIPTS/files/safedel.pl" $incongruous_files
-      test_or_continue "running safedel.  $fail_message" 
+      continue_on_error "running safedel.  $fail_message" 
       echo
     fi
     popd &>/dev/null
     echo "copying custom overrides for $custom_user"
     mkdir -p "$FEISTY_MEOW_LOADING_DOCK/custom" 2>/dev/null
     perl "$FEISTY_MEOW_SCRIPTS/text/cpdiff.pl" "$FEISTY_MEOW_SCRIPTS/customize/$custom_user" "$FEISTY_MEOW_LOADING_DOCK/custom"
-    test_or_continue "running cpdiff.  $fail_message"
+    continue_on_error "running cpdiff.  $fail_message"
 
     if [ -d "$FEISTY_MEOW_SCRIPTS/customize/$custom_user/scripts" ]; then
       echo "copying custom scripts for $custom_user"
-      netcp "$FEISTY_MEOW_SCRIPTS/customize/$custom_user/scripts" "$FEISTY_MEOW_LOADING_DOCK/custom/" &>/dev/null
+      rsync -avz "$FEISTY_MEOW_SCRIPTS/customize/$custom_user/scripts" "$FEISTY_MEOW_LOADING_DOCK/custom/" &>/dev/null
+      continue_on_error "copying customization scripts"
 #hmmm: could save output to show if an error occurs.
     fi
     echo
@@ -519,7 +522,7 @@ or if you're on cygwin, then try this (if apt-cyg is available):\n
     # prevent permission foul-ups, again.
     chown -R "$(logname):$(logname)" \
         "$FEISTY_MEOW_LOADING_DOCK" "$FEISTY_MEOW_GENERATED_STORE" 2>/dev/null
-    test_or_continue "chowning to $(logname) didn't happen."
+    continue_on_error "chowning to $(logname) didn't happen."
 
     restore_terminal_title
   }
@@ -777,8 +780,8 @@ return 0
   # count the number of sub-directories in a directory and echo the result.
   function count_directories()
   {
-    local appsdir="$1"; shift
-    numdirs="$(find "$appsdir" -mindepth 1 -maxdepth 1 -type d | wc -l)"
+    local subbydir="$1"; shift
+    numdirs="$(find "$subbydir" -mindepth 1 -maxdepth 1 -type d | wc -l)"
     echo $numdirs
   }
 
@@ -800,7 +803,7 @@ return 0
   
     if [ -d "$src" ]; then
       ln -s "$src" "$target"
-      test_or_die "Creating symlink from '$src' to '$target'"
+      exit_on_error "Creating symlink from '$src' to '$target'"
     fi
     echo "Created symlink from '$src' to '$target'."
   }
@@ -817,7 +820,7 @@ return 0
       temp_out="$TMP/$file.view"
       cat "$file" | python -m json.tool > "$temp_out"
       show_list+=($temp_out)
-      test_or_continue "pretty printing '$file'"
+      continue_on_error "pretty printing '$file'"
     done
     filedump "${show_list[@]}"
     rm "${show_list[@]}"
@@ -878,12 +881,12 @@ return 0
 
     # make a backup first, oy.
     \cp -f "$filename" "/tmp/$(basename ${filename}).bkup-${RANDOM}" 
-    test_or_die "backing up file: $filename"
+    exit_on_error "backing up file: $filename"
 
     # make a temp file to write to before we move file into place in bind.
     local new_version="/tmp/$(basename ${filename}).bkup-${RANDOM}" 
     \rm -f "$new_version"
-    test_or_die "cleaning out new version of file from: $new_version"
+    exit_on_error "cleaning out new version of file from: $new_version"
 
     local line
     local skip_count=0
@@ -918,7 +921,7 @@ return 0
     if [ ! -z "$found_any" ]; then
       # put the file back into place under the original name.
       \mv "$new_version" "$filename"
-      test_or_die "moving the new version into place in: $filename"
+      exit_on_error "moving the new version into place in: $filename"
     else
       # cannot always be considered an error, but we can at least gripe.
       echo "Did not find any matches for seeker '$seeker' in file: $filename"
@@ -927,6 +930,16 @@ return 0
 
   ##############
 
+  # site avenger aliases
+  function switchto()
+  {
+    THISDIR="$FEISTY_MEOW_SCRIPTS/site_avenger"
+    source "$FEISTY_MEOW_SCRIPTS/site_avenger/shared_site_mgr.sh"
+    switch_to "$1"
+  }
+
+  ##############
+
   # NOTE: no more function definitions are allowed after this point.
 
   function function_sentinel()
@@ -944,7 +957,7 @@ return 0
     echo running tests on set_var_if_undefined.
     flagrant=petunia
     set_var_if_undefined flagrant forknordle
-    test_or_die "testing if defined variable would be whacked"
+    exit_on_error "testing if defined variable would be whacked"
     if [ $flagrant != petunia ]; then
       echo set_var_if_undefined failed to leave the test variable alone
       exit 1