Skip to content

Commit 19cfa2c

Browse files
Demon000npjohnson
authored andcommitted
extract_utils: add shortcircuit to extract all files from zip
Change-Id: I7296aca27ba06d809c5044e003b773e69c3c98f4
1 parent 9559bbc commit 19cfa2c

File tree

4 files changed

+19
-0
lines changed

4 files changed

+19
-0
lines changed

extract.py

+6
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@
3636
type=str,
3737
help='Extra partitions to extract',
3838
)
39+
parser.add_argument(
40+
'--all',
41+
action='store_true',
42+
help='Extract all files from archive',
43+
)
3944

4045
parser.add_argument(
4146
'source',
@@ -54,6 +59,7 @@
5459
ctx = ExtractCtx(
5560
keep_dump=True,
5661
extract_partitions=extract_partitions,
62+
extract_all=args.all,
5763
)
5864

5965
with get_dump_dir(args.source, ctx) as dump_dir:

extract_utils/args.py

+6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@
1313
parser = argparse.ArgumentParser(description='Extract utils')
1414

1515
group = parser.add_mutually_exclusive_group()
16+
group.add_argument(
17+
'--extract-all',
18+
action='store_true',
19+
help='Extract all files from archive',
20+
)
1621
group.add_argument(
1722
'--only-common',
1823
action='store_true',
@@ -87,6 +92,7 @@ class ArgsSource(str, Enum):
8792
class Args:
8893
def __init__(self, args: argparse.Namespace):
8994
# Wrap to provide type hints
95+
self.extract_all: bool = args.extract_all
9096
self.only_common: bool = args.only_common
9197
self.only_target: bool = args.only_target
9298
self.extract_factory: bool = args.extract_factory

extract_utils/extract.py

+6
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def __init__(
6464
firmware_partitions: Optional[List[str]] = None,
6565
firmware_files: Optional[List[str]] = None,
6666
factory_files: Optional[List[str]] = None,
67+
extract_all=False,
6768
):
6869
if extract_fns is None:
6970
extract_fns = {}
@@ -90,6 +91,8 @@ def __init__(
9091
self.factory_files = factory_files
9192
self.extra_files: List[str] = []
9293

94+
self.extract_all = extract_all
95+
9396

9497
def file_name_to_partition(file_name: str):
9598
return file_name.split('.', 1)[0]
@@ -238,6 +241,9 @@ def filter_extract_file_paths(
238241
ctx: ExtractCtx,
239242
file_paths: List[str],
240243
):
244+
if ctx.extract_all:
245+
return file_paths
246+
241247
return filter_files(
242248
[
243249
ctx.extract_partitions,

extract_utils/main.py

+1
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ def run(self):
164164
list(firmware_partitions),
165165
list(firmware_files),
166166
list(factory_files),
167+
self.__args.extract_all,
167168
)
168169

169170
with create_source(self.__args.source, extract_ctx) as source:

0 commit comments

Comments
 (0)