]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Bin/CYGWIN_NT-5.1-i686/GenFw
BaseTools: Improve shell wrapper for C build commands
[mirror_edk2.git] / BaseTools / Bin / CYGWIN_NT-5.1-i686 / GenFw
index 4821d24fa7edc2d9d8f1a351cf44d4d1891fb0a5..0945d86d9209fe4cf438f44a38bf43142162856d 100755 (executable)
@@ -1,29 +1,29 @@
 #!/usr/bin/env bash
-#python `dirname $0`/RunToolFromSource.py `basename $0` $*
-#exec `dirname $0`/../../../../C/bin/`basename $0` $*
 
-TOOL_BASENAME=`basename $0`
+full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+dir=$(dirname "$full_cmd")
+cmd=${full_cmd##*/}
 
-if [ -n "$WORKSPACE" -a -e $WORKSPACE/Conf/BaseToolsCBinaries ]
+if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ]
 then
-  exec $WORKSPACE/Conf/BaseToolsCBinaries/$TOOL_BASENAME
-elif [ -n "$WORKSPACE" -a -e $EDK_TOOLS_PATH/Source/C ]
+  exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd"
+elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ]
 then
-  if [ ! -e $EDK_TOOLS_PATH/Source/C/bin/$TOOL_BASENAME ]
+  if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ]
   then
-    echo BaseTools C Tool binary was not found \($TOOL_BASENAME\)
-    echo You may need to run:
+    echo "BaseTools C Tool binary was not found ($cmd)"
+    echo "You may need to run:"
     echo "  make -C $EDK_TOOLS_PATH/Source/C"
   else
-    exec $EDK_TOOLS_PATH/Source/C/bin/$TOOL_BASENAME $*
+    exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@"
   fi
-elif [ -e `dirname $0`/../../Source/C/bin/$TOOL_BASENAME ]
+elif [ -e "$dir/../../Source/C/bin/$cmd" ]
 then
-  exec `dirname $0`/../../Source/C/bin/$TOOL_BASENAME $*
+  exec "$dir/../../Source/C/bin/$cmd" "$@"
 else
-  echo Unable to find the real \'$TOOL_BASENAME\' to run
-  echo This message was printed by
+  echo "Unable to find the real '$cmd' to run"
+  echo "This message was printed by"
   echo "  $0"
-  exit -1
+  exit 127
 fi