Fix patch_updater.py to work on non-Windows platforms.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1690 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
5b4ed93abf
commit
84382ecbbb
|
@ -5,14 +5,20 @@
|
|||
from subprocess import Popen, PIPE
|
||||
import sys
|
||||
|
||||
def exec_cmd(cmd, path):
|
||||
def exec_cmd(cmd, path, input_file=None):
|
||||
""" Execute the specified command and return the result. """
|
||||
out = ''
|
||||
err = ''
|
||||
parts = cmd.split()
|
||||
try:
|
||||
process = Popen(parts, cwd=path, stdout=PIPE, stderr=PIPE,
|
||||
shell=(sys.platform == 'win32'))
|
||||
if not input_file:
|
||||
process = Popen(parts, cwd=path, stdout=PIPE, stderr=PIPE,
|
||||
shell=(sys.platform == 'win32'))
|
||||
else:
|
||||
with open(input_file, 'rb') as f:
|
||||
process = Popen(parts, cwd=path, stdout=PIPE, stderr=PIPE,
|
||||
stdin=f,
|
||||
shell=(sys.platform == 'win32'))
|
||||
out, err = process.communicate()
|
||||
except IOError, (errno, strerror):
|
||||
raise
|
||||
|
|
|
@ -104,7 +104,7 @@ for patch in patches:
|
|||
|
||||
# Apply the patch file.
|
||||
msg('Applying patch to %s' % patch_root_abs)
|
||||
result = exec_cmd('patch -p0 < %s' % patch_file, patch_root_abs)
|
||||
result = exec_cmd('patch -p0', patch_root_abs, patch_file)
|
||||
if result['err'] != '':
|
||||
raise Exception('Failed to apply patch file: %s' % result['err'])
|
||||
sys.stdout.write(result['out'])
|
||||
|
@ -117,12 +117,14 @@ for patch in patches:
|
|||
msg('Saving changes to %s' % patch_file)
|
||||
patch_paths_str = ' '.join(patch_paths)
|
||||
if src_is_git:
|
||||
cmd = 'git diff --no-prefix --relative %s > %s' % \
|
||||
(patch_paths_str, patch_file)
|
||||
cmd = 'git diff --no-prefix --relative %s' % patch_paths_str
|
||||
else:
|
||||
cmd = 'svn diff %s > %s' % (patch_paths_str, patch_file)
|
||||
cmd = 'svn diff %s' % patch_paths_str
|
||||
result = exec_cmd(cmd, patch_root_abs)
|
||||
if result['err'] != '' and result['err'].find('warning:') != 0:
|
||||
raise Exception('Failed to create patch file: %s' % result['err'])
|
||||
f = open(patch_file, 'wb')
|
||||
f.write(result['out'])
|
||||
f.close()
|
||||
else:
|
||||
raise Exception('Patch file does not exist: %s' % patch_file)
|
||||
|
|
Loading…
Reference in New Issue