From 0ac3e4558292ea0cd9a038ce39b7f2d92ee8713c Mon Sep 17 00:00:00 2001 From: Seblu <sebastien.luttringer@smartjog.com> Date: Thu, 25 Aug 2011 10:25:03 +0200 Subject: [PATCH] list now use new syntax spec --- bin/is | 47 ++++++++---------------------------- installsystems/repository.py | 9 +++++++ 2 files changed, 19 insertions(+), 37 deletions(-) diff --git a/bin/is b/bin/is index 4ebd6b1..5706199 100755 --- a/bin/is +++ b/bin/is @@ -197,44 +197,17 @@ def c_list(parser, args): List images in repository or image content ''' # List available repositories - if len(args.values) == 0: - repoman = load_repositories(args) + repoman = load_repositories(args) + if len(args.object) == 0: arrow("Repositories") repoman.show(verbose=args.detail) - return - # list direct image or reposity content - elif len(args.values) == 1: - # list image file content - if (istools.isfile(args.values[0]) and os.path.isfile(args.values[0])): - pkg = PackageImage(args.values[0]) - arrow("Image %s v%s" % (pkg.name, pkg.version)) - pkg.show(verbose=args.detail) - # list repository content - else: - args.repo_filter = args.values[0] - repoman = load_repositories(args) - for repo in repoman: - arrow("Image in %s" % repo.config.name) - repo.show(args.detail) - return - # list last image version - elif len(args.values) == 2: - args.repo_filter = args.values[0] - args.image = args.values[1] - args.image_version = None - # list specific image version - elif len(args.values) == 3: - args.repo_filter = args.values[0] - args.image = args.values[1] - args.image_version = args.values[2] else: - args.subparser.print_usage() - exit(1) - # display content of image accross a repositories - repoman = load_repositories(args) - pkg = repoman.get(args.image, args.image_version) - arrow("Image %s v%s" % (pkg.name, pkg.version)) - pkg.show(verbose=args.detail) + for o in args.object: + if o in repoman: + repoman[o].show(verbose=args.detail) + else: + img, repo = select_image(o, repoman) + img.show(verbose=args.detail) def c_move(parser, args): ''' @@ -376,8 +349,8 @@ p_install.set_defaults(func=c_install, subparser=p_install) p_list = subparsers.add_parser("list", help=c_list.__doc__.lower()) p_list.add_argument("-l", action="store_true", dest="detail", default=False, help="detailled list output") -p_list.add_argument("values", nargs="*", - help="image or repositories to list") +p_list.add_argument("object", nargs="*", + help="object can be an image or repositories") p_list.set_defaults(func=c_list, subparser=p_list) # move command parser diff --git a/installsystems/repository.py b/installsystems/repository.py index 3e11c5f..04b8f4a 100644 --- a/installsystems/repository.py +++ b/installsystems/repository.py @@ -518,6 +518,15 @@ class RepositoryManager(object): else: raise TypeError + def __contains__(self, key): + ''' + Check if a key is a repository name + ''' + for r in self.repos: + if r.config.name == key: + return True + return False + def register(self, config): ''' Register a repository from its config -- GitLab