Пример #1
0
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)