def images(*argv): usage = """ Display available images """ parser = ArgumentParser(usage=usage, formatter_class=ArgumentDefaultsHelpFormatter) parser.add_argument("-l", "--labeled-only", dest="labeled", action='store_true', default=False, help="""if specified, only images that have at least one symlink to them are shown""") parser.add_argument("-p", "--public-only", action="store_true", default=False, help="displays only publicly visible images") parser.add_argument("-s", "--size", dest='sort_size', action='store_true', default=None, help="sort by size (default is by name)") parser.add_argument("-d", "--date", dest='sort_date', action='store_true', default=None, help="sort by date") parser.add_argument("-r", "--reverse", action='store_true', default=False, help="reverse sort") parser.add_argument("-n", "--narrow", action='store_true', default=False, help="""default is to show full paths, with this option only radicals are displayed""") parser.add_argument("focus", nargs="*", type=str, help="if provided, only images that contain " "one of these strings are displayed") args = parser.parse_args(argv) imagesrepo = ImagesRepo() if args.sort_size is not None: args.sort_by = 'size' elif args.sort_date is not None: args.sort_by = 'date' else: args.sort_by = 'name' # if focus is an empty list, then everything is shown return imagesrepo.images(args.focus, args.sort_by, args.reverse, args.labeled, args.public_only, args.narrow)