diff options
Diffstat (limited to 'src/ee/tools/ninja.py')
-rw-r--r-- | src/ee/tools/ninja.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/ee/tools/ninja.py b/src/ee/tools/ninja.py index 7d73d8f..3df8796 100644 --- a/src/ee/tools/ninja.py +++ b/src/ee/tools/ninja.py @@ -1,5 +1,6 @@ import argparse import os.path +import pydoc import sys from pathlib import Path from typing import List, Union @@ -126,11 +127,27 @@ def generate(project: Project): "default ee-reports\n", ]) + # Hooks + hooks = [("odoo", "ee.odoo.generate_ninja")] + hook_fragments = {} + for name, function in hooks: + f = pydoc.locate(function) + hook_fragments[name] = f(project) + with ee_ninja.open("w") as f: env = _create_env() template = env.get_template("build.ninja.j2") f.write(template.render(**params)) + f.write("\n") + if len(hooks): + for name, _ in hooks: + f.write("# Hook: {}\n".format(name)) + fragment_name = hook_fragments[name] + f.write(fragment_name) + if not fragment_name.endswith("\n"): + f.write("\n") + parser = argparse.ArgumentParser() ee.tools.add_default_argparse_group(parser) |