moved the top-level and probably most important feisty meow variable from the seeming...
[feisty_meow.git] / scripts / core / functions.sh
index 535f5ecdaa1c2df8c79aa61ff637f6d5e865bd83..68cdd1d5461b6f8aa18b4f4b60543ae2be3dac20 100644 (file)
@@ -281,10 +281,12 @@ if [ -z "$skip_all" ]; then
     fi
   }
   
-  # switches from an X:/ form to an /X/path form.
+  # switches from an X:/ form to a /cygdrive/X/path form.  this is only useful
+  # for the cygwin environment currently.
   function dos_to_unix_path() {
     # we always remove dos slashes in favor of forward slashes.
-    echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/\1\/\2/'
+#old:    echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/\1\/\2/'
+         echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/cygdrive\/\1\/\2/'
   }
 
   # returns a successful value (0) if this system is debian or ubuntu.
@@ -371,7 +373,7 @@ if [ -z "$skip_all" ]; then
     # interesting note perhaps: found that the NETHACKOPTIONS variable was
     # not being unset correctly when preceded by an alias.  split them up
     # like they are now due to that bug.
-    unset -v CORE_ALIASES_LOADED FEISTY_MEOW_GENERATED NECHUNG NETHACKOPTIONS 
+    unset -v CORE_ALIASES_LOADED FEISTY_MEOW_LOADING_DOCK NECHUNG NETHACKOPTIONS 
     unset -f function_sentinel 
     # reload feisty meow environment in current shell.
     source $FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh
@@ -413,27 +415,30 @@ if [ -z "$skip_all" ]; then
       # use our default example user if there was no name provided.
       user=fred
     fi
-    if [ ! -d "$FEISTY_MEOW_DIR/customizing/$user" ]; then
+    if [ ! -d "$FEISTY_MEOW_APEX/customizing/$user" ]; then
       echo "The customization folder provided for $user should be:"
-      echo "  '$FEISTY_MEOW_DIR/customizing/$user'"
+      echo "  '$FEISTY_MEOW_APEX/customizing/$user'"
       echo "but that folder does not exist.  Skipping customization."
       return 1
     fi
     regenerate >/dev/null
-    pushd "$FEISTY_MEOW_GENERATED/custom" &>/dev/null
-    local incongruous_files="$(bash "$FEISTY_MEOW_SCRIPTS/files/list_non_dupes.sh" "$FEISTY_MEOW_DIR/customizing/$user" "$FEISTY_MEOW_GENERATED/custom")"
-    if [ ${#incongruous_files} -ge 1 ]; then
+    pushd "$FEISTY_MEOW_LOADING_DOCK/custom" &>/dev/null
+    local incongruous_files="$(bash "$FEISTY_MEOW_SCRIPTS/files/list_non_dupes.sh" "$FEISTY_MEOW_APEX/customizing/$user" "$FEISTY_MEOW_LOADING_DOCK/custom")"
+
+#echo "the incongruous files list is: $incongruous_files"
+    # disallow a single character result, since we get "*" as result when nothing exists yet.
+    if [ ${#incongruous_files} -ge 2 ]; then
       echo "cleaning unknown older overrides..."
       perl "$FEISTY_MEOW_SCRIPTS/files/safedel.pl" $incongruous_files
       echo
     fi
     popd &>/dev/null
     echo "copying custom overrides for $user"
-    mkdir "$FEISTY_MEOW_GENERATED/custom" 2>/dev/null
-    perl "$FEISTY_MEOW_SCRIPTS/text/cpdiff.pl" "$FEISTY_MEOW_DIR/customizing/$user" "$FEISTY_MEOW_GENERATED/custom"
-    if [ -d "$FEISTY_MEOW_DIR/customizing/$user/scripts" ]; then
+    mkdir -p "$FEISTY_MEOW_LOADING_DOCK/custom" 2>/dev/null
+    perl "$FEISTY_MEOW_SCRIPTS/text/cpdiff.pl" "$FEISTY_MEOW_APEX/customizing/$user" "$FEISTY_MEOW_LOADING_DOCK/custom"
+    if [ -d "$FEISTY_MEOW_APEX/customizing/$user/scripts" ]; then
       echo "copying custom scripts for $user"
-      \cp -R "$FEISTY_MEOW_DIR/customizing/$user/scripts" "$FEISTY_MEOW_GENERATED/custom/"
+      \cp -R "$FEISTY_MEOW_APEX/customizing/$user/scripts" "$FEISTY_MEOW_LOADING_DOCK/custom/"
     fi
     echo
     regenerate
@@ -470,19 +475,38 @@ if [ -z "$skip_all" ]; then
         echo "failure to find a file or directory named '$arg'."
         continue
       fi
+
+      # first we will capture the output of the character replacement operation for reporting.
+      # this is done first since some filenames can't be properly renamed in perl (e.g. if they
+      # have pipe characters apparently).
+      intermediate_name="$(bash "$FEISTY_MEOW_SCRIPTS/files/replace_spaces_with_underscores.sh" "$arg")"
+      local saw_intermediate_result=0
+      if [ -z "$intermediate_name" ]; then
+        # make sure we report something, if there are no further name changes.
+        intermediate_name="'$arg'"
+      else 
+        # now zap the first part of the name off (since original name isn't needed).
+        intermediate_name="$(echo $intermediate_name | sed -e 's/.*=> //')"
+        saw_intermediate_result=1
+      fi
+
       # first we rename the file to be lower case.
-      perl $FEISTY_MEOW_SCRIPTS/files/renlower.pl "$arg" &>/dev/null
-      # oops, now the name is all lower-case.  we need to make the
-      # same adjustment.
-      arg2="$(echo "$arg" | tr A-Z a-z)"
-      # we definitely wanted to adjust the case first, rather than doing all
-      # the wacky stuff this script does to the filename...  we will capture
-      # the output of the replace operaton for reporting.
-      final_name="$(perl "$FEISTY_MEOW_SCRIPTS/files/replace_spaces_with_underscores.sh" "$arg2")"
-      # now zap the intermediate part of the name off.
-      final_name="$(echo $final_name | sed -e 's/.*=> //')"
-      # printout the combined operation results.
-      echo "'$arg' => $final_name"
+      actual_file="$(echo $intermediate_name | sed -e "s/'\([^']*\)'/\1/")"
+      final_name="$(perl $FEISTY_MEOW_SCRIPTS/files/renlower.pl "$actual_file")"
+      local saw_final_result=0
+      if [ -z "$final_name" ]; then
+        final_name="$intermediate_name"
+      else
+        final_name="$(echo $final_name | sed -e 's/.*=> //')"
+        saw_final_result=1
+      fi
+#echo intermed=$saw_intermediate_result 
+#echo final=$saw_final_result 
+
+      if [[ $saw_intermediate_result != 0 || $saw_final_result != 0 ]]; then
+        # printout the combined operation results.
+        echo "'$arg' => $final_name"
+      fi
     done
   }
 
@@ -512,21 +536,21 @@ return 0
   # this is a new or modified definition.  if the feisty meow codebase is
   # unloaded, then so are all the variables that were defined.
   # this function always exports the variables it defines.
-  function define_yeti_variable()
-  {
-# if variable exists already, save old value for restore,
-# otherwise save null value for restore,
-# have to handle unsetting if there was no prior value of one
-# we newly defined.
-# add variable name to a list of feisty defined variables.
-
-#hmmm: first implem just sets it up and exports the variable.
-#  i.e., this method always exports.
-export "${@}" 
-
-
-return 0
-  }
+#  function define_yeti_variable()
+#  {
+## if variable exists already, save old value for restore,
+## otherwise save null value for restore,
+## have to handle unsetting if there was no prior value of one
+## we newly defined.
+## add variable name to a list of feisty defined variables.
+#
+##hmmm: first implem just sets it up and exports the variable.
+##  i.e., this method always exports.
+#export "${@}" 
+#
+#
+#return 0
+#  }
 
   ##############