1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
#!/bin/python
from argparse import ArgumentParser
parser = ArgumentParser()
parser.man_short_description = "templating system/generator for distributions"
group1 = parser.add_argument_group("group1 title", "description for group 1")
group2 = parser.add_argument_group()
group1.add_argument(
'--group-1-option',
metavar='PROJECTDIR',
type=str,
help='Directory with project (defaults to CWD)',
default="."
)
group2.add_argument(
'--group-2-option',
metavar='DIST',
type=str,
help='Use distribution metadata specified by DIST yaml file',
default="fedora-21-x86_64.yaml",
)
group2.add_argument(
"g2arg",
help=(
"Some longer multiline description should go here, "
"and here and here. If you want, even here."
),
)
parser.add_argument(
'--top-option',
metavar='MULTISPEC',
type=str,
help='Use MULTISPEC yaml file to fill the TEMPLATE file',
)
subparsers = parser.add_subparsers(
title="subparsers",
description="subparsers description",
help="subparsers help")
parser_a = subparsers.add_parser('subparserA', help='a help')
group = parser_a.add_argument_group(
"subgroup",
description=(
"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris "
"tincidunt sem sed arcu. Etiam dictum tincidunt diam. Duis sapien "
"nunc, commodo et, interdum suscipit, sollicitudin et, dolor. "
))
group.add_argument("--subgroup-option")
parser_a.add_argument("--sub-parser-option")
subsubparsers = parser_a.add_subparsers(
title="sub-subparsers title",
help="Some help text for sub-subparser",
)
subsubparser_a = subsubparsers.add_parser('sub-subparserA', help='a help')
subsubparser_a.add_argument("--doh")
tpl_or_combinations = parser.add_mutually_exclusive_group(required=True)
tpl_or_combinations.add_argument(
'--template',
metavar='TEMPLATE',
type=str,
help='Use TEMPLATE file, e.g. docker.tpl or a template string, '
'e.g. "{{ config.docker.from }}"'
)
tpl_or_combinations.add_argument(
'--multispec-combinations',
action='store_true',
help='Print available multispec combinations',
)
def _main():
parser.parse_args()
if __name__ == "__main__":
_main()
|