nice changes unified a bunch of things, although of course windows
[feisty_meow.git] / scripts / generator / wrapdoze.sh
index 99d610ca29018d6b04c6d9c5e946d134abb48784..0ce27c37ee09bcb8d726b858cad20cadfbb9930a 100644 (file)
@@ -1,24 +1,55 @@
 #!/bin/bash
 
-source "$FEISTY_MEOW_SCRIPTS/core/functions.sh"
+source $FEISTY_MEOW_SCRIPTS/core/functions.sh
 
-declare -a commands=()
+function dossify_and_run_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")
+
+eval "${@}"
+return $?
+
+
+#all primordial gunk.  try above first.
+  # we only mess with the command line on windows...
+  if [ "$OS" != "Windows_NT" ]; then
+    # for non windows, just run the commands straight up.
+    $*
+    return $?
   fi
-done
 
-#  echo commands are now:
-#  for i in "${commands[@]}"; do
-#    echo $i
-#  done
+  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
+
+#temp!
+  echo commands are now:
+  for i in "${real_commands[@]}"; do
+    echo -n "$i "
+  done
+  echo
+#end temp
 
-# now actually run the possibly chewed command.
-"${commands[@]}"
+  # now actually run the chewed command.
+  cmd /c "${real_commands[@]}"
+}
 
+dossify_and_run_commands "$@"