blob: e0569429e6a98207c3f9fb56edbc4549d72a5135 [file] [log] [blame]
import argparse
import os
import mako.lookup
import sdbusplus
def main():
module_path = os.path.dirname(sdbusplus.__file__)
valid_types = {"interface": sdbusplus.Interface, "error": sdbusplus.Error}
valid_processes = {
"markdown": "markdown",
"server-header": "server_header",
"server-cpp": "server_cpp",
"exception-header": "exception_header",
"exception-cpp": "exception_cpp",
"client-header": "client_header",
}
parser = argparse.ArgumentParser(description="Process sdbus++ YAML files.")
parser.add_argument(
"-r",
"--rootdir",
dest="rootdir",
default=".",
type=str,
help="Location of files to process.",
)
parser.add_argument(
"-t",
"--templatedir",
dest="templatedir",
default=os.path.join(module_path, "templates"),
type=str,
help="Location of templates files.",
)
parser.add_argument(
"typeName",
metavar="TYPE",
type=str,
choices=valid_types.keys(),
help="Type to operate on.",
)
parser.add_argument(
"process",
metavar="PROCESS",
type=str,
choices=valid_processes.keys(),
help="Process to apply.",
)
parser.add_argument(
"item",
metavar="ITEM",
type=str,
help="Item to process.",
)
args = parser.parse_args()
lookup = mako.lookup.TemplateLookup(directories=[args.templatedir])
instance = valid_types[args.typeName].load(args.item, args.rootdir)
function = getattr(instance, valid_processes[args.process])
print(function(lookup))