tmake
简介
gs模板的处理工具
tmake 是template maker的缩写
本pkg的功能之一是将源代码目录的源文件(.gs)中的模板占位符(如TEMPLATE_REQURE(ABC)
)替换为对应的值
以一个模板pkg为例,必然有的文件夹如下:
- src - 源代码目录
- 源文件1.gs
- 源文件2.gs
- ...
- template
- template.yaml - 模板配置文件(参考__template__.yaml)
YAML配置文件说明
tokens - 占位符对应的值
- 配置一组模板占位符
prebuild_files - 前处理文件
- 配置一组前处理文件(.gs,需要包含main方法)
prebuild_cmds - 前处理命令
- 配置一组前处理命令(move_file/move_path)
- move_file
<src_file>
<dst_file>
- move_path
<src_path>
<dst_path>
- move_path
<src_path>
<dst_path>
<pattern>
postbuild_files - 后处理文件(需要包含main方法)
- 配置一组后处理文件(.gs, 需要包含main方法)
postbuild_cmds - 后处理命令
- 配置一组后处理命令(move_file/move_path)
- move_file
<src_file>
<dst_file>
- move_path
<src_path>
<dst_path>
- move_path
<src_path>
<dst_path>
<pattern>
packages - 依赖的pkg包
- 配置一组本模板安装后依赖的pkg包
file_structures - 文件结构
- 配置一组模板安装时需要生成的文件或者目录,其中目录需要以'/'结尾配置
project_properties - 自定义的项目属性
- 配置一组自定义的项目属性
mount_points - 挂载点
- 配置一组挂载点
组件接口
tmake.gs
函数原型 | 函数作用 |
---|---|
void set_project_property(string key, mixed value) | 设置项目属性 |
mixed get_project_property(string key) | 获取项目属性 |
map get_project_properties() | 获取项目所有属性 |
void add_token(string token_name, map properties) | 在env里动态添加一个token(优先级高于文件token) |
map get_tokens(string template_path = nil, object yaml_ob = nil) | 获取指定路径下以及env里的所有token词典(调试接口) |
bool build(string template_path, string out_path, string project_name = "tmake") | 将给定的一个模板目录处理为目标代码 |
类
TemplateContext
模板制作环境
成员变量
变量名 | 类型 | 初始值 | 须初始化 | 描述 |
---|---|---|---|---|
path | string | nil | 可选 | 模板目录 |
out_path | string | nil | 可选 | 输出目录 |
name | string | nil | 可选 | 名称(根据模板目录计算) |
yaml_ob | object | nil | 可选 | YAML配置文件对象 |
source_dict | map | nil | 可选 | 模板源文件词典 |
token_dict | map | nil | 可选 | 模板占位符词典表 |
project_properties | map | nil | 可选 | 项目属性 |
file_structures | array | nil | 可选 | 模板文件结构 |
packages | array | nil | 可选 | 依赖包packages安装 |
prebuild_files | array | nil | 可选 | 前处理文件 |
prebuild_cmds | array | nil | 可选 | 前处理指令 |
postbuild_files | array | nil | 可选 | 后处理文件 |
postbuild_cmds | array | nil | 可选 | 后处理指令 |
error_count | int | 0 | 可选 | 错误计数 |
成员方法
TemplateSourceFile
模板源文件
成员变量
变量名 | 类型 | 初始值 | 须初始化 | 描述 |
---|---|---|---|---|
path | string | nil | 可选 | 文件路径 |
成员方法
函数原型 | 函数作用 |
---|---|
string parse(TemplateContext context) | 解析模板源文件内容 |
bool build(string out_path, TemplateContext context) | 解析模板源文件内容并写入目标文件 |
TemplateCmd
模板前处理/后处理命令
成员变量
变量名 | 类型 | 初始值 | 须初始化 | 描述 |
---|---|---|---|---|
cmd | string | nil | 可选 | 名称 |
args | array | nil | 可选 | 参数列表 |
func | function | nil | 可选 | 执行函数 |
成员方法
函数原型 | 函数作用 |
---|---|
mixed exec() | 执行命令 |
样例
tmake.build("/demo", "/output");