1
0
Fork 1
mirror of https://gitlab.postmarketos.org/postmarketOS/pmbootstrap.git synced 2025-07-25 13:35:09 +03:00

pmb.parse.arguments: add zap --all flag (MR 2117)

Fixes: #1692
This commit is contained in:
Laszlo Molnar 2022-02-14 06:33:51 +01:00 committed by Alexey Min
parent 5252d8de78
commit 2e39912790
No known key found for this signature in database
GPG key ID: 0B19D2A65870B448
2 changed files with 57 additions and 0 deletions

View file

@ -23,6 +23,26 @@ import pmb.helpers.pmaports
See pmb/helpers/args.py for more information about the args variable. """
def toggle_other_boolean_flags(*other_destinations, value=True):
""" Helper function to group several argparse flags to one. Sets multiple
other_destination to value.
:param other_destinations: 'the other argument names' str
:param value 'the value to set the other_destinations to' bool
:returns custom Action"""
class SetOtherDestinationsAction(argparse.Action):
def __init__(self, option_strings, dest, **kwargs):
super().__init__(option_strings, dest, nargs=0, const=value,
default=value, **kwargs)
def __call__(self, parser, namespace, values, option_string=None):
for destination in other_destinations:
setattr(namespace, destination, value)
return SetOtherDestinationsAction
def type_ondev_cp(val):
""" Parse and validate arguments to 'pmbootstrap install --ondev --cp'.
@ -707,6 +727,16 @@ def arguments():
zap.add_argument("-r", "--rust", action="store_true",
help="also delete rust related caches")
zap_all_delete_args = ["http", "distfiles", "pkgs_local",
"pkgs_local_mismatch", "netboot", "pkgs_online_mismatch",
"rust"]
zap_all_delete_args_print = [arg.replace("_", "-")
for arg in zap_all_delete_args]
zap.add_argument("-a", "--all",
action=toggle_other_boolean_flags(*zap_all_delete_args),
help="delete everything, equivalent to: "
f"--{' --'.join(zap_all_delete_args_print)}")
# Action: stats
stats = sub.add_parser("stats", help="show ccache stats")
stats.add_argument("--arch", default=arch_native, choices=arch_choices)