48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
# Copyright (C) 2017 Canonical Ltd.
|
|
#
|
|
# This file is part of cloud-init. See LICENSE file for license information.
|
|
|
|
"""Define 'devel' subcommand argument parsers to include in cloud-init cmd."""
|
|
|
|
import argparse
|
|
|
|
from cloudinit.cmd.devel import hotplug_hook, make_mime, net_convert, render
|
|
|
|
|
|
def get_parser(parser=None):
|
|
if not parser:
|
|
parser = argparse.ArgumentParser(
|
|
prog="cloudinit-devel",
|
|
description="Run development cloud-init tools",
|
|
)
|
|
subparsers = parser.add_subparsers(title="Subcommands", dest="subcommand")
|
|
subparsers.required = True
|
|
|
|
subcmds = [
|
|
(
|
|
hotplug_hook.NAME,
|
|
hotplug_hook.__doc__,
|
|
hotplug_hook.get_parser,
|
|
hotplug_hook.handle_args,
|
|
),
|
|
(
|
|
net_convert.NAME,
|
|
net_convert.__doc__,
|
|
net_convert.get_parser,
|
|
net_convert.handle_args,
|
|
),
|
|
(render.NAME, render.__doc__, render.get_parser, render.handle_args),
|
|
(
|
|
make_mime.NAME,
|
|
make_mime.__doc__,
|
|
make_mime.get_parser,
|
|
make_mime.handle_args,
|
|
),
|
|
]
|
|
for subcmd, helpmsg, get_parser, handler in subcmds:
|
|
parser = subparsers.add_parser(subcmd, help=helpmsg)
|
|
get_parser(parser)
|
|
parser.set_defaults(action=(subcmd, handler))
|
|
|
|
return parser
|