diff options
author | lgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-12-29 06:16:53 +0000 |
---|---|---|
committer | lgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-12-29 06:16:53 +0000 |
commit | a709adfaf0bebbaf3d989f56b500e3985687d0e3 (patch) | |
tree | 47d6f44e4afffe70535e492f8585f433efcbf24d /BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py | |
parent | 4661d5df04ce804e454509922fd54f45332553da (diff) | |
download | edk2-platforms-a709adfaf0bebbaf3d989f56b500e3985687d0e3.tar.xz |
Sync tool code to BuildTools project r1783.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9623 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py')
-rwxr-xr-x | BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py b/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py index 4d91a264ba..6d7aa00c4d 100755 --- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py +++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py @@ -25,14 +25,15 @@ # import sys import os -import subprocess +import subprocess +import pipes # # Convert using cygpath command line tool # Currently not used, but just in case we need it in the future # def ConvertCygPathToDosViacygpath(CygPath): - p = subprocess.Popen("cygpath -m " + CygPath, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True) + p = subprocess.Popen("cygpath -m " + pipes.quote(CygPath), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True) return p.stdout.read().strip() # @@ -45,32 +46,36 @@ def ConvertCygPathToDos(CygPath): else: DosPath = CygPath - # need the extra \\ as we are making a string to pass to a command - return DosPath.replace('/','\\\\') + # pipes.quote will add the extra \\ for us. + return DosPath.replace('/','\\') +# we receive our options as a list, but we will be passing them to the shell as a line +# this means we have to requote things as they will get one round of unquoting. +# we can't set "shell=False" because we are running commands from the PATH and +# if you don't use the shell you don't get a PATH search. def main(argv): # use 1st argument as name of tool to call - Command = sys.argv[1] + Command = pipes.quote(sys.argv[1]); ExceptionList = ["/interwork"] for arg in argv: if arg.find('/') == -1: # if we don't need to convert just add to the command line - Command = Command + ' ' + arg + Command = Command + ' ' + pipes.quote(arg) elif arg in ExceptionList: # if it is in the list, then don't do a cygpath # assembler stuff after --apcs has the /. - Command = Command + ' ' + arg + Command = Command + ' ' + pipes.quote(arg) else: if ((arg[0] == '-') and (arg[1] == 'I' or arg[1] == 'i')): CygPath = arg[0] + arg[1] + ConvertCygPathToDos(arg[2:]) else: CygPath = ConvertCygPathToDos(arg) - - Command = Command + ' ' + CygPath + + Command = Command + ' ' + pipes.quote(CygPath) # call the real tool with the converted paths return subprocess.call(Command, shell=True) |