- Avoid obsolescent forms of test builtin (`-a` and `-o`; see APPLICATION USAGE section of http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html). - Quote all expansions to prevent string-splitting and globbing. - Avoid unspecified "exit -1" (only single-byte integers are valid); instead, use identical exit status to shell command-not-found. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Charles Duffy <chaduffy@cisco.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19695 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			30 lines
		
	
	
		
			848 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			848 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| 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" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ]
 | |
| then
 | |
|   exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd"
 | |
| elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ]
 | |
| then
 | |
|   if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ]
 | |
|   then
 | |
|     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/$cmd" "$@"
 | |
|   fi
 | |
| elif [ -e "$dir/../../Source/C/bin/$cmd" ]
 | |
| then
 | |
|   exec "$dir/../../Source/C/bin/$cmd" "$@"
 | |
| else
 | |
|   echo "Unable to find the real '$cmd' to run"
 | |
|   echo "This message was printed by"
 | |
|   echo "  $0"
 | |
|   exit 127
 | |
| fi
 | |
| 
 |