brintos

brintos / linux-shallow public Read only

0
0
Text · 1005 B · bcf47d9 Raw
33 lines · python
1#!/usr/bin/env python32# ex: set filetype=python:3 4"""Generate source code boilerplate"""5 6import os.path7import time8 9from generators import Boilerplate10from generators import find_xdr_program_name, create_jinja2_environment11from xdr_ast import _RpcProgram, Specification, get_header_name12 13 14class XdrSourceTopGenerator(Boilerplate):15    """Generate source code boilerplate"""16 17    def __init__(self, language: str, peer: str):18        """Initialize an instance of this class"""19        self.environment = create_jinja2_environment(language, "source_top")20        self.peer = peer21 22    def emit_source(self, filename: str, root: Specification) -> None:23        """Emit the top source boilerplate"""24        name = find_xdr_program_name(root)25        template = self.environment.get_template(self.peer + ".j2")26        print(27            template.render(28                program=name,29                filename=filename,30                mtime=time.ctime(os.path.getmtime(filename)),31            )32        )33