Source code for ifgen.commands.gen
"""
An entry-point for the 'gen' command.
"""
# built-in
from argparse import ArgumentParser as _ArgumentParser
from argparse import Namespace as _Namespace
import sys
# third-party
from vcorelib.args import CommandFunction as _CommandFunction
from vcorelib.paths import normalize
# internal
from ifgen import PKG_NAME
from ifgen.config import load
from ifgen.generation import generate
from ifgen.paths import combine_if_not_absolute
[docs]
def gen_cmd(args: _Namespace) -> int:
"""Execute the gen command."""
root = normalize(args.root)
sys.setrecursionlimit(args.recursion)
generate(root.resolve(), load(combine_if_not_absolute(root, args.config)))
return 0
[docs]
def add_gen_cmd(parser: _ArgumentParser) -> _CommandFunction:
"""Add gen-command arguments to its parser."""
parser.add_argument(
"--recursion",
type=int,
default=10000,
help="recursion limit to set (default: '%(default)s')",
)
parser.add_argument(
"-c",
"--config",
default=f"{PKG_NAME}.yaml",
help="configuration file to use (default: '%(default)s')",
)
parser.add_argument(
"-r",
"--root",
default=".",
help=(
"root directory to use for relative "
"paths (default: '%(default)s')"
),
)
return gen_cmd