vars收集器和模板运行器。
c2c.template的Python项目详细描述
VARS文件
vars收集器从yaml文件获取vars,如下所示:
extends:inherit.yamlvars:string_var:a stringint_var:42interpreted_var:__import__('datetime').date.today()combined_var:'Today:{interpreted_var:%Y-%m-%d}'facter_json:/usr/bin/facter --jsonfacter_yaml:/usr/bin/facter --yamlpi:console.log(Math.PI.toPrecision(3))obj:v1:1v2:'2'v3:[1,2,3]interpreted:python:-interpreted_varbash:-facter_json-facter_yamljson:-facter_jsonyaml:-facter_yamlnode:vars:["pi"]cmd:["node","-e"]update_path:-obj
inherit.yaml是另一个具有相同语法的文件,它将提供 初始变量。
vars部分是我们定义vars值、yaml文件的地方 支持键入,42将是整数。
用于解释某些变量的interpreted配置, python,bash,environ,json,yaml是预定义的 解释器,node是自定义解释器。
update_path是一个“.”分隔的路径列表,这些路径将被更新(对于dict) 或附加(用于列表),而不是覆盖。子路径将被隐式添加。
我们可以重用预定义的变量并格式化它们(请参见combined_var), 见:str.format()。
用法示例
在模板中解释变量
c2c-template --vars vars.yaml --engine jinja --files template.jinja
结果将存储在名为template的文件中。
获取变量
把变量放在外面是很有用的。
`c2c-template --vars vars.yaml --get-vars INT_VAR=int_var string_var`
将bash变量INT_VAR设置为42,将STRING_VAR设置为“字符串”。
获取配置文件
c2c-template --vars vars.yaml --get-config config.yaml string-var int-var combined-var
将创建名为config.yamlthis的文件:
string-var:a stringint-var:42combined-var:Today:2014-12-12
基于模板构建一组文件
创建以下vars文件(vars.yaml):
vars:var1:commoniter:-name:onevar2:first-name:twovar2:second
以及以下模板(template.jinja):
var1: {{ var1 }} var2: {{ var2 }}
并运行以下命令:
c2c-template --vars vars.yaml --files-builder template.jinja {name}.txt iter
这将创建两个文件:
one.txt文件,具有:
var1: common var2: first
two.txt文件,具有:
var1: common var2: second