HEX
Server: Apache
System: Linux 162-240-236-42.bluehost.com 3.10.0-1160.114.2.el7.x86_64 #1 SMP Wed Mar 20 15:54:52 UTC 2024 x86_64
User: bt667 (1004)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //lib/python2.7/site-packages/cloudinit/cmd/devel/parser.py
# 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.config import schema

from . import net_convert
from . import 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 = [
        ('schema', 'Validate cloud-config files for document schema',
         schema.get_parser, schema.handle_schema_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)
    ]
    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