a tweak to keep missing directories from causing error messages.
[feisty_meow.git] / scripts / generator / wrapdoze.sh
index d7432835e403dedaf5ea505f3aa490ca6f1c67c2..ab0a9998ddd1a8b443d0137b16f0a61bf8d1a017 100755 (executable)
@@ -2,15 +2,44 @@
 
 source $FEISTY_MEOW_SCRIPTS/core/functions.sh
 
+#hmmm: make this support multiple vars as parameters.
+# replaces a specific environment variable with a dos approved equivalent.
+function dossify_environment_variable()
+{
+  local var="$1"; shift
+
+  old_value="${!var}"
+  if [[ ! "$old_value" =~ \/cygdrive\/ ]]; then
+#echo didnt have a cygdrive in it: $old_value
+    return 0
+#hmmm: want this to continue in multi parm version.
+  fi
+
+  # replace single back-slashes with double ones.
+  local new_value="$(unix_to_dos_path "${old_value}")"
+
+  # remove any quote characters in the value.
+  new_value="${new_value//\"/}"
+
+#  echo "new value: $var  =  $new_value"
+  eval "export $var=\"$new_value\""
+}
+
+# for a windows build, this will replace any forward slashes
+# and other cygwin notation with the appropriate dos style paths.
 function dossify_and_run_commands()
 {
-  # we only mess with the command line on windows...
   if [ "$OS" != "Windows_NT" ]; then
     # for non windows, just run the commands straight up.
-    $*
+    eval "${@}"
     return $?
   fi
 
+  # force all slashes to be dossy.
+#  export SERIOUS_SLASH_TREATMENT=true
+
+  dossify_environment_variable INCLUDE
+
   declare -a darc_commands=()
 
   for i in "$@"; do
@@ -32,13 +61,13 @@ function dossify_and_run_commands()
     real_commands+=($(echo $i | sed -e 's/\\/\\\\/g'))
   done
 
-#temp!
-  echo commands are now:
-  for i in "${real_commands[@]}"; do
-    echo -n "$i "
-  done
-  echo
-#end temp
+  if [ ! -z "$SHELL_DEBUG" ]; then
+    echo commands are now:
+    for i in "${real_commands[@]}"; do
+      echo -n "$i "
+    done
+    echo
+  fi
 
   # now actually run the chewed command.
   cmd /c "${real_commands[@]}"