updated from windows side and nearly working over there.
[feisty_meow.git] / scripts / generator / wrapdoze.sh
index 99d610ca29018d6b04c6d9c5e946d134abb48784..9aa543e7501a9e6d48810db342a094db52d1b4ac 100644 (file)
@@ -1,24 +1,52 @@
 #!/bin/bash
 
-source "$FEISTY_MEOW_SCRIPTS/core/functions.sh"
+source $FEISTY_MEOW_SCRIPTS/core/functions.sh
 
-declare -a commands=()
-
-for i in "$@"; do
-  # we only mess with the command line on windows.
-  if [ "$OS" == "Windows_NT" ]; then
-    commands+=($(msys_to_dos_path $i))
-  else
-    commands+=("$i")
+# 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()
+{
+  if [ "$OS" != "Windows_NT" ]; then
+    # for non windows, just run the commands straight up.
+    eval "${@}"
+    return $?
   fi
-done
 
-#  echo commands are now:
-#  for i in "${commands[@]}"; do
-#    echo $i
-#  done
+  # force all slashes to be dossy.
+#  export SERIOUS_SLASH_TREATMENT=true
+
+  declare -a darc_commands=()
+
+  for i in "$@"; do
+    if [[ "$i" =~ ^-[a-zA-z][/\"].* ]]; then
+      flag="${i:0:2}"
+      filename="$(unix_to_dos_path ${i:2})"
+#echo "first two chars are $flag"
+#echo "last after that are $filename"
+      recombined="$flag$filename"
+#echo combined flag and file is $recombined
+      darc_commands+=("$recombined")
+    else 
+      darc_commands+=($(unix_to_dos_path $i))
+    fi
+  done
+
+  declare -a real_commands=()
+  for i in "${darc_commands[@]}"; do
+    real_commands+=($(echo $i | sed -e 's/\\/\\\\/g'))
+  done
+
+  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 possibly chewed command.
-"${commands[@]}"
+  # now actually run the chewed command.
+  cmd /c "${real_commands[@]}"
+}
 
+dossify_and_run_commands "$@"