From 4e8dbb857762b98c784bbb517c644b7dd90526c0 Mon Sep 17 00:00:00 2001 From: Michał Górny Date: Wed, 1 Nov 2017 17:42:28 +0100 Subject: cli: Support --profile --- gemato/cli.py | 11 +++++++++++ gemato/profile.py | 11 +++++++++++ 2 files changed, 22 insertions(+) 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]() -- cgit v1.2.3