feat: finish basic packer
- finish basic packer - add basic jinja2 template
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from . import common
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class CMakeProperties:
|
||||
name: str
|
||||
"""The identifier of project"""
|
||||
|
||||
|
||||
class CMakeRender:
|
||||
__render: common.BaseRender
|
||||
__properties: CMakeProperties
|
||||
|
||||
def __init__(self, properties: CMakeProperties) -> None:
|
||||
self.__render = common.BaseRender()
|
||||
self.__properties = properties
|
||||
|
||||
def render_config(self) -> None:
|
||||
pass
|
||||
|
||||
def render_config_version(self) -> None:
|
||||
pass
|
||||
@@ -0,0 +1,22 @@
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
import jinja2
|
||||
from .. import utils
|
||||
|
||||
|
||||
class BaseRender:
|
||||
__loader: jinja2.BaseLoader
|
||||
__environment: jinja2.Environment
|
||||
|
||||
def __init__(self) -> None:
|
||||
self.__loader = jinja2.FileSystemLoader(utils.get_templates_dir())
|
||||
self.__environment = jinja2.Environment(loader=self.__loader)
|
||||
|
||||
def render(
|
||||
self, template_filename: str, dest_filepath: Path, payload: dict[str, Any]
|
||||
) -> None:
|
||||
# fetch template
|
||||
template = self.__environment.get_template(template_filename)
|
||||
# render template and save
|
||||
with open(dest_filepath, "w", encoding="utf-8") as f:
|
||||
f.write(template.render(**payload))
|
||||
@@ -0,0 +1,20 @@
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from . import common
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class PkgConfigProperties:
|
||||
pass
|
||||
|
||||
|
||||
class PkgConfigRender:
|
||||
|
||||
__render: common.BaseRender
|
||||
__properties: PkgConfigProperties
|
||||
|
||||
def __init__(self, properties: PkgConfigProperties) -> None:
|
||||
self.__render = common.BaseRender()
|
||||
self.__properties = properties
|
||||
|
||||
def render(self) -> None:
|
||||
pass
|
||||
Reference in New Issue
Block a user