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
|
#!/usr/bin/env python3
import os
import sys
import argparse
def main():
_tdir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
sys.path.insert(0, _tdir)
from cloudinit import templater, util # pylint: disable=E0401
VARIANTS = [
"almalinux",
"alpine",
"amazon",
"aosc",
"arch",
"azurelinux",
"benchmark",
"centos",
"cloudlinux",
"debian",
"dragonfly",
"eurolinux",
"fedora",
"freebsd",
"gentoo",
"mariner",
"miraclelinux",
"netbsd",
"openbsd",
"openeuler",
"OpenCloudOS",
"openmandriva",
"photon",
"raspberry-pi-os",
"rhel",
"suse",
"rocky",
"TencentOS",
"ubuntu",
"unknown",
"virtuozzo",
]
parser = argparse.ArgumentParser()
platform = util.system_info()
parser.add_argument(
"--variant",
default=platform["variant"],
action="store",
help="define the variant.",
choices=VARIANTS,
)
parser.add_argument(
"--prefix",
action="store",
default=sys.prefix,
help="define the prefix. Default: " + sys.prefix,
)
parser.add_argument(
"--is-yaml",
action="store_true",
default=False,
help=(
"Rendered template is not expected to be valid yaml by default."
" Add this flag for extra validation."
),
)
parser.add_argument(
"template",
nargs="?",
action="store",
default="./config/cloud.cfg.tmpl",
help="Path to the cloud.cfg template",
)
parser.add_argument(
"output",
nargs="?",
action="store",
default="-",
help="Output file. Use '-' to write to stdout",
)
args = parser.parse_args(sys.argv[1:])
templater.render_template(
args.variant, args.template, args.output, args.is_yaml, prefix=args.prefix
)
if __name__ == "__main__":
main()
|