summaryrefslogtreecommitdiff
path: root/scripts/update_payload/applier.py
diff options
context:
space:
mode:
authorGilad Arnold <garnold@chromium.org>2013-08-22 16:59:48 -0700
committerChromeBot <chrome-bot@google.com>2013-08-26 16:02:59 -0700
commit21a0250e767dd6fc787252b9cc05657405332774 (patch)
tree1152a5ae33e938bd3a6a670e025a7042138c5e13 /scripts/update_payload/applier.py
parent9753f3d28bda5d2abd7d17eb79022f7e02cb65b9 (diff)
paycheck: allow to pass an explicit path to bspatch
The bspatch binary is used when applying update payloads. By default, we were using whatever bspatch that was found via path expansion in os.execvp, however there are cases where we want to be specific about where the bspatch binary is that we need to be using (such as during paygen runs). BUG=chromium:277072 TEST=Non-default bspatch binary used Change-Id: I85ffd28aeb26938cbf5ea428fa97d29af0353a7d Reviewed-on: https://gerrit.chromium.org/gerrit/66736 Tested-by: Gilad Arnold <garnold@chromium.org> Reviewed-by: Don Garrett <dgarrett@chromium.org> Commit-Queue: Gilad Arnold <garnold@chromium.org>
Diffstat (limited to 'scripts/update_payload/applier.py')
-rw-r--r--scripts/update_payload/applier.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/scripts/update_payload/applier.py b/scripts/update_payload/applier.py
index 85f8b0eb..9448ef7d 100644
--- a/scripts/update_payload/applier.py
+++ b/scripts/update_payload/applier.py
@@ -192,13 +192,14 @@ class PayloadApplier(object):
"""
- def __init__(self, payload, bsdiff_in_place=True,
+ def __init__(self, payload, bsdiff_in_place=True, bspatch_path=None,
truncate_to_expected_size=True):
"""Initialize the applier.
Args:
payload: the payload object to check
bsdiff_in_place: whether to perform BSDIFF operation in-place (optional)
+ bspatch_path: path to the bspatch binary (optional)
truncate_to_expected_size: whether to truncate the resulting partitions
to their expected sizes, as specified in the
payload (optional)
@@ -208,6 +209,7 @@ class PayloadApplier(object):
self.payload = payload
self.block_size = payload.manifest.block_size
self.bsdiff_in_place = bsdiff_in_place
+ self.bspatch_path = bspatch_path or 'bspatch'
self.truncate_to_expected_size = truncate_to_expected_size
def _ApplyReplaceOperation(self, op, op_name, out_data, part_file, part_size):
@@ -325,7 +327,7 @@ class PayloadApplier(object):
# Invoke bspatch on partition file with extents args.
file_name = '/dev/fd/%d' % part_file.fileno()
- bspatch_cmd = ['bspatch', file_name, file_name, patch_file_name,
+ bspatch_cmd = [self.bspatch_path, file_name, file_name, patch_file_name,
in_extents_arg, out_extents_arg]
subprocess.check_call(bspatch_cmd)
@@ -346,7 +348,8 @@ class PayloadApplier(object):
out_file_name = out_file.name
# Invoke bspatch.
- bspatch_cmd = ['bspatch', in_file_name, out_file_name, patch_file_name]
+ bspatch_cmd = [self.bspatch_path, in_file_name, out_file_name,
+ patch_file_name]
subprocess.check_call(bspatch_cmd)
# Read output.