2 个版本
使用旧的 Rust 2015
0.1.1 | 2018 年 8 月 22 日 |
---|---|
0.1.0 | 2018 年 8 月 21 日 |
#13 in #merging
10KB
89 行
Trope 文档
Trope 是一个简单的命令行工具,用于将各种配置文件类型和环境变量合并到 YAML 或 JSON。它是一个纯 Rust 实现,旨在追求速度,并展示了 Rust 处理不同类型合并的能力。它使用 clap-rs 进行 CLI 解释,使用 config-rs 进行文件处理,使用 serde 进行序列化。
支持的文件类型
Trope 支持以下文件类型作为输入
安装
用法
安装后,使用 Trope 很简单:trope [FLAGS] [OPTIONS]...
键入 trope -h
提供控制台中所有信息的列表。
特性
标志
-
-h
--help
显示内联帮助 -
-V
--version
显示当前版本 -
-e
--env
合并任何以 'TROPE' 为前缀的环境变量 -
-d
--debug
当设置时,trope 显示合并后的配置而不是写入文件注意:必须满足
--output
选项
-I
--input
用于添加合并候选者,语法:PATH/FILENAME.extension,每个候选者由空格分隔-O
--output
定义或创建所需的输出文件,语法:PATH/FILENAME.extension
示例
使用以下列出的三个示例文件:Settings.yaml、Server.toml 和 Johndoe.json
Settings.yaml
---
debug: false
port: 8080
host: 0.0.0.0
test-float: 3.4
test-int: 43
array:
- One
- two:
a: 1
b: 2
- three
Server.toml
[servers]
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
country = "中国"
Johndoe.json
{
"name": "John Doe",
"age": 40,
"address": {
"street": "11 Castle Lane",
"city": "London"
},
"phones": [
"+44 1234567",
"+44 2345678"
]
}
从工作目录运行 trope -I Settings.yaml Server.toml Johndoe.json -O output.yaml
将返回名为 output.yaml
的文件
---
age: 40
"test-int": 43
address:
street: 11 Castle Lane
city: London
host: 0.0.0.0
phones:
- +44 1234567
- +44 2345678
name: John Doe
port: 8080
array:
- One
- two:
b: 2
a: 1
- three
debug: false
servers:
beta:
dc: eqdc10
ip: 10.0.0.2
country: 中国
alpha:
ip: 10.0.0.1
dc: eqdc10
"test-float": 3.4
已知错误
- Trope 错误地处理 -inf、+inf 和 NaN 值。它以不可预测的方式处理这些值,如果可能的话应避免使用。这是由于使用的库,随着这些库的更新将会纠正。
依赖关系
~3.5MB
~62K SLoC