diff --git a/bin/is b/bin/is index 4ebd6b168178029635ba1e0380d138640cb32016..5706199f41e17f9d49a2dcf448304df12ad5d92d 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 3e11c5f48ca8f7ca0da0f7ed37ea4e296631da90..04b8f4a46d3ea6b16ec44b0608814d21448472c0 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