| "multitool templating" | |
| _ENV_TEMPLATE = "//multitool/private:env_repo_template/{filename}.template" | |
| _ENV_TOOL_TEMPLATE = "//multitool/private:env_repo_tool_template/{filename}.template" | |
| _HUB_TEMPLATE = "//multitool/private:hub_repo_template/{filename}.template" | |
| _HUB_TOOL_TEMPLATE = "//multitool/private:hub_repo_tool_template/{filename}.template" | |
| def _render_env(rctx, filename, substitutions = None): | |
| rctx.template( | |
| filename, | |
| Label(_ENV_TEMPLATE.format(filename = filename)), | |
| substitutions = substitutions or {}, | |
| ) | |
| def _render_env_tool(rctx, tool_name, filename, substitutions = None): | |
| rctx.template( | |
| "tools/{tool_name}/{filename}".format(tool_name = tool_name, filename = filename), | |
| Label(_ENV_TOOL_TEMPLATE.format(filename = filename)), | |
| substitutions = { | |
| "{name}": tool_name, | |
| } | (substitutions or {}), | |
| ) | |
| def _render_hub(rctx, filename, substitutions = None): | |
| rctx.template( | |
| filename, | |
| Label(_HUB_TEMPLATE.format(filename = filename)), | |
| substitutions = substitutions or {}, | |
| ) | |
| def _render_hub_tool(rctx, tool_name, filename, substitutions = None): | |
| rctx.template( | |
| "tools/{tool_name}/{filename}".format(tool_name = tool_name, filename = filename), | |
| Label(_HUB_TOOL_TEMPLATE.format(filename = filename)), | |
| substitutions = { | |
| "{name}": tool_name, | |
| } | (substitutions or {}), | |
| ) | |
| templates = struct( | |
| env = _render_env, | |
| env_tool = _render_env_tool, | |
| hub = _render_hub, | |
| hub_tool = _render_hub_tool, | |
| ) |