diff options
author | Michał Górny <mgorny@gentoo.org> | 2017-11-01 17:42:28 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2017-11-01 17:42:28 +0100 |
commit | 4e8dbb857762b98c784bbb517c644b7dd90526c0 (patch) | |
tree | 93d2634903d7413aa58f1e96cf473e560ede8d33 | |
parent | 50f0f552ee1af6b5d2b8b749f5413788f21bcb8a (diff) | |
download | gemato-4e8dbb857762b98c784bbb517c644b7dd90526c0.tar.gz |
cli: Support --profile
-rw-r--r-- | gemato/cli.py | 11 | ||||
-rw-r--r-- | gemato/profile.py | 11 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gemato/cli.py b/gemato/cli.py index 49add27..755e2a8 100644 --- a/gemato/cli.py +++ b/gemato/cli.py @@ -13,6 +13,7 @@ import os.path import timeit import gemato.find_top_level +import gemato.profile import gemato.recursiveloader @@ -103,6 +104,9 @@ def do_update(args, argp): save_kwargs['force'] = True if args.openpgp_id is not None: init_kwargs['openpgp_keyid'] = args.openpgp_id + if args.profile is not None: + init_kwargs['profile'] = gemato.profile.get_profile_by_name( + args.profile) if args.sign is not None: init_kwargs['sign_openpgp'] = args.sign with gemato.openpgp.OpenPGPEnvironment() as env: @@ -162,6 +166,9 @@ def do_create(args, argp): save_kwargs['force'] = True if args.openpgp_id is not None: init_kwargs['openpgp_keyid'] = args.openpgp_id + if args.profile is not None: + init_kwargs['profile'] = gemato.profile.get_profile_by_name( + args.profile) if args.sign is not None: init_kwargs['sign_openpgp'] = args.sign with gemato.openpgp.OpenPGPEnvironment() as env: @@ -241,6 +248,8 @@ def main(argv): help='Use the specified OpenPGP key (by ID or user)') update.add_argument('-K', '--openpgp-key', help='Use only the OpenPGP key(s) from a specific file') + update.add_argument('-p', '--profile', + help='Use the specified profile ("default", "ebuild", "old-ebuild"...)') signgroup = update.add_mutually_exclusive_group() signgroup.add_argument('-s', '--sign', action='store_true', default=None, @@ -266,6 +275,8 @@ def main(argv): help='Use the specified OpenPGP key (by ID or user)') create.add_argument('-K', '--openpgp-key', help='Use only the OpenPGP key(s) from a specific file') + create.add_argument('-p', '--profile', + help='Use the specified profile ("default", "ebuild", "old-ebuild"...)') signgroup = create.add_mutually_exclusive_group() signgroup.add_argument('-s', '--sign', action='store_true', default=None, diff --git a/gemato/profile.py b/gemato/profile.py index b05addd..e790604 100644 --- a/gemato/profile.py +++ b/gemato/profile.py @@ -77,3 +77,14 @@ class BackwardsCompatEbuildRepositoryProfile(EbuildRepositoryProfile): return (super(BackwardsCompatEbuildRepositoryProfile, self) .get_entry_type_for_path(path)) + + +PROFILE_MAPPING = { + 'default': DefaultProfile, + 'ebuild': EbuildRepositoryProfile, + 'old-ebuild': BackwardsCompatEbuildRepositoryProfile, +} + + +def get_profile_by_name(name): + return PROFILE_MAPPING[name]() |