xref: /aosp_15_r20/external/google-cloud-java/generation/new_client/templates.py (revision 55e87721aa1bc457b326496a7ca40f3ea1a63287)
1*55e87721SMatt Gilbride#!/usr/bin/env python3
2*55e87721SMatt Gilbride#  Copyright 2020 Google LLC
3*55e87721SMatt Gilbride#
4*55e87721SMatt Gilbride# Licensed under the Apache License, Version 2.0 (the "License");
5*55e87721SMatt Gilbride# you may not use this file except in compliance with the License.
6*55e87721SMatt Gilbride# You may obtain a copy of the License at
7*55e87721SMatt Gilbride#
8*55e87721SMatt Gilbride#     http://www.apache.org/licenses/LICENSE-2.0
9*55e87721SMatt Gilbride#
10*55e87721SMatt Gilbride# Unless required by applicable law or agreed to in writing, software
11*55e87721SMatt Gilbride# distributed under the License is distributed on an "AS IS" BASIS,
12*55e87721SMatt Gilbride# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*55e87721SMatt Gilbride# See the License for the specific language governing permissions and
14*55e87721SMatt Gilbride# limitations under the License.
15*55e87721SMatt Gilbride
16*55e87721SMatt Gilbridefrom jinja2 import Environment, FileSystemLoader
17*55e87721SMatt Gilbrideimport os
18*55e87721SMatt Gilbrideimport pathlib
19*55e87721SMatt Gilbridefrom typing import List
20*55e87721SMatt Gilbride
21*55e87721SMatt Gilbrideroot_directory = pathlib.Path(
22*55e87721SMatt Gilbride    os.path.realpath(os.path.dirname(os.path.realpath(__file__)))
23*55e87721SMatt Gilbride)
24*55e87721SMatt Gilbrideprint(root_directory)
25*55e87721SMatt Gilbridejinja_env = Environment(loader=FileSystemLoader(str(root_directory / "templates")))
26*55e87721SMatt Gilbride
27*55e87721SMatt Gilbride
28*55e87721SMatt Gilbridedef render(template_name: str, output_name: str, **kwargs):
29*55e87721SMatt Gilbride    template = jinja_env.get_template(template_name)
30*55e87721SMatt Gilbride    t = template.stream(kwargs)
31*55e87721SMatt Gilbride    directory = os.path.dirname(output_name)
32*55e87721SMatt Gilbride    if not os.path.isdir(directory):
33*55e87721SMatt Gilbride        os.makedirs(directory)
34*55e87721SMatt Gilbride    t.dump(str(output_name))
35