Merge "Make update_prebilts.py fail gracefully on bad sdk zip" am: 3c438b3962 am: c5c89c1e95
Change-Id: I0b3e308dd7380739781ef94ca433ea9a417b8970
diff --git a/update_prebuilts/update_prebuilts.py b/update_prebuilts/update_prebuilts.py
index cce652c..cde5c27 100755
--- a/update_prebuilts/update_prebuilts.py
+++ b/update_prebuilts/update_prebuilts.py
@@ -645,12 +645,6 @@
os.path.join(extras_dir, 'material-design-x'), extract_res=False)
-def extract_to(zip_file, filename, parent_path):
- zip_path = next(filter(lambda path: filename in path, zip_file.namelist()))
- src_path = zip_file.extract(zip_path)
- dst_path = path(parent_path, filename)
- mv(src_path, dst_path)
-
def update_framework(build_id, sdk_dir):
api_scope_list = ['public', 'system', 'test']
if sdk_dir == 'current':
@@ -675,7 +669,15 @@
with zipfile.ZipFile(artifact_path) as zipFile:
for filename in ['android.jar', 'framework.aidl', 'uiautomator.jar']:
- extract_to(zipFile, filename, target_dir)
+ matches = list(filter(lambda path: filename in path, zipFile.namelist()))
+ if len(matches) != 1:
+ print_e('Expected 1 file named \'%s\' in zip %s, found %d' %
+ (filename, zipFile.filename, len(matches)))
+ return False
+ zip_path = matches[0]
+ src_path = zipFile.extract(zip_path)
+ dst_path = path(target_dir, filename)
+ mv(src_path, dst_path)
return True