13个版本
0.4.4 | 2021年5月1日 |
---|---|
0.4.0 | 2021年3月11日 |
0.2.10 | 2020年11月19日 |
0.2.7 | 2020年7月15日 |
#288 in 模板引擎
每月44次下载
71KB
1K SLoC
guidon-cli
guidon-cli
是使用 guidon
库渲染项目模板的工具。
它的可执行文件名为 guic
(类似于 guidon-cli...)。
功能
- 命令行工具
- 使用 Handlebars 模板语法
- 渲染模板化的文件名或文件夹名
- 源可以是本地文件夹或 Git 仓库
- 对于 Git 仓库,可以使用特定的修订版本
- 目标是文件夹
用法
$ guic --help
Usage: guic [OPTIONS]
Apply template to project structures
Optional arguments:
-h, --help help
-v, --verbose verbosity
-q, --quiet quiet mode
Available commands:
tplt Templatize the given data
crypt Encrypt / Decrypt
$ guic tptl -h
Usage: guic tplt [OPTIONS]
Positional arguments:
from_path Path or git repo of the template
to_path Output path for the target
Optional arguments:
-h, --help This help message
-g, --git-source Required if template is hosted in a git repo
-r, --rev REV Revision to use
-k, --unsecure True to ignore certificate validation
-a, --auto-proxy If set to true, git tries to detect proxy configuration
-m, --mode MODE Render mode (lax, strict or strict_ask)
-i, --interactive Review variables before rendering template
-t, --custom-tplt CUSTOM-TPLT
Provide a template file. If not provided, taken from given from_path.
$ guic -h crypt
Usage: guic crypt [OPTIONS]
Positional arguments:
data The data to encrypt/decrypt
Optional arguments:
-h, --help This help message
-x, --decrypt set to true to decrypt given data. If false, data encryption
-k, --key KEY The key to use. If not provided, the key will be read from GUIDON_KEY env var
从本地文件夹应用
$ guic tplt /path/to/template/folder /path/to/target
模板文件预期在文件夹中
folder
|- template.toml
|- template
| | - file1.hbs
| - file2.hbs
从模板文件应用
$ guic tplt /path/to/template_file.toml /path/to/target
结构预期如下
folder
|- template_file.toml
|- file1.hbs
|- file2.hbs
使用自定义模板应用
guic tplt -t tplt_file.toml path_to/template_dir /path/to/target
给定结构下应用
|
|- tplt_file.toml
|- path_to
| |- template_dir
| |- file1.hbs
|- file2.hbs
从 Git 仓库应用
简单用法案例
如果使用 Git URL,ssh 密钥必须在 ssh-agent 实例中存在。
# With a https url
$ guic tplt -g https://url.to.my/git/repo /path/to/target
# With a git/ssh url
$guic tplt -g [email protected]:git/repo /path/to/target
私有仓库
使用自签名证书和访问令牌。
$ guic tplt -g -k https://:[email protected]/git/repo /path/to/target
使用用户密码。您应提供编码后的用户名和密码
$guic tplt -g https://user:[email protected]/git/repo /path/to/target
如果 ssh-agent 正在运行并且可以提供正确的密钥,您可以调用
$guic tplt -g [email protected]:git/rep path/to/target
模板
基本模板结构如下
a_folder/ parent folder
|- template.toml configuration file (key / values)
|- template/ folder containing templates files
| - file1.txt.hbs a template file (hbs extension)
| - file{{key1}} the {{key1}} part will be replaced
| - dir1
| |- file2.txt.hbs a template file
| |- file3.txt this file will be copied to destination
| - {{dirkey}} this folder will be renamed
| |- {{filekey}}.hbs this file will be renamed and rendered
以及一个 file1.txt.hbs
文件如下
This is a {{key2}}, but it could have been a {{key3}}.
以及一个 template.toml
文件如下
[variables]
key1 = ".bak"
key2 = "plop"
key3 = "toto"
dirkey = "THE/FOLDER"
filekey = "my_file.ini"
输出结构将是
target_folder/
|- file1.txt
|- file.bak
|- dir1/
| |- file2.txt
| |- file3.txt
|- THE/
|- FOLDER/
|- my_file.ini
并且 file1.txt
的内容将是
This is a plop, but it could have been a toto.
提供了一些助手,请参阅 readme
渲染模式
如果 lax
,缺失的值将默认为空字符串,如果 strict
,则对于缺失的值将引发错误,如果 strict_ask
,则用户将被提示输入缺失的值。
安装
通过 Cargo
$ cargo install --force guidon-cli
预构建的二进制文件
预构建的二进制文件可在此处获取
依赖项
~5–14MB
~198K SLoC