44 个版本

0.7.2 2021 年 3 月 18 日
0.7.0 2019 年 11 月 12 日
0.6.4 2019 年 8 月 12 日
0.6.3 2019 年 6 月 21 日
0.0.4 2018 年 3 月 29 日

配置 中排名第 245

Download history 3/week @ 2024-03-07 1/week @ 2024-03-14 27/week @ 2024-03-28 19/week @ 2024-04-04

每月下载量 107

Apache-2.0

425KB
11K SLoC

通用配置语法。

Build Status

这是一个配置管理的实验。方法不是创建一个“可解析”的配置文件格式。我们已经有很多这样的格式。相反,我们尝试指定一个用于描述配置值的语法,然后可以针对各种配置格式进行输出。

理论上,这可以支持从命令行标志到 json、yaml 或 toml,甚至 xml 的任何内容。

目标是允许一个全局共享的配置仓库,可以进行版本控制,强制执行 一些 类型安全,并为任何应用程序输出配置,无论该应用程序首选的格式如何。

常见的警告

这仍然是一个非常实验性的项目,语言和 API 可能会发生变化和修改。请务必注意。

使用方法

您可以使用 cargo 安装 ucg:cargo install ucg

运行 ucg help 将显示以下输出。

Universal Configuration Grammar compiler.

USAGE:
    ucg [FLAGS] [SUBCOMMAND]

FLAGS:
    -h, --help         Prints help information
        --no-strict    Turn off strict checking.
    -V, --version      Prints version information

SUBCOMMANDS:
    build         Build a list of ucg files.
    converters    list the available converters
    env           Describe the environment variables ucg uses.
    eval          Evaluate an expression with an optional ucg file as context.
    fmt           Format ucg files automatically.
    help          Prints this message or the help of the given subcommand(s)
    importers     list the available importers for includes
    repl          Start the ucg repl for interactive evaluation.
    test          Check a list of ucg files for errors and run test assertions.

编译

Build a list of ucg files.

USAGE:
    ucg build [FLAGS] -r [INPUT]...

FLAGS:
    -h, --help       Prints help information
    -r               Whether we should recurse in directories or not.
    -V, --version    Prints version information

ARGS:
    <INPUT>...    Input ucg files or directories to build. If not provided then build the contents of the current directory.

运行 repl

$> ucg repl
ucg> 1 + 1;
2
ucg> {foo = 1 + 1};
{
        foo = 2,
}
ucg> 

测试

 Check a list of ucg files for errors and run test assertions.

USAGE:
    ucg test [FLAGS] -r [INPUT]...

FLAGS:
    -h, --help       Prints help information
    -r               Whether we should recurse or not.
    -V, --version    Prints version information

ARGS:
    <INPUT>...    Input ucg files or directories to run test assertions for. If not provided it will scan the current directory for files with _test.ucg

语言参考

https://ucg.marzhillstudios.com/reference

依赖项

~8–11MB
~192K SLoC