76 个版本

0.14.0 2024年7月17日
0.13.0 2023年8月5日
0.12.6-alpha.7 2023年3月4日
0.10.1 2022年11月23日
0.5.1 2020年3月27日

#807命令行工具

Download history 148/week @ 2024-07-15 55/week @ 2024-07-22 8/week @ 2024-07-29

每月211 次下载
用于 ranger

MIT 许可证

205KB
1.5K SLoC

Rust 896 SLoC BASH 303 SLoC PowerShell 118 SLoC Elvish 103 SLoC

complate

complate 是一个支持交互模式(通过 TUI 行为提示用户输入值)和无头模式(用于自动化,如 CI 管道)的通用文本模板 CLI 程序。

安装

  • 使用 cargo
    cargo安装 complate
  • 手动方式
    从 GitHub 发布版下载并安装。

配置示例

version: 0.13
templates:
  zero:
    content:
      inline: |-
        {{ a.alpha }}
        {{ b.bravo }}
    variables:
      a.alpha:
        static: alpha
      b.bravo: arg

  one:
    content:
      file: ./.complate/templates/arbitraty-template-file.tpl
    variables:
      a.pwd:
        env: "PWD"
  two:
    content:
      inline: |-
        {{ a.alpha }}
        {{ b.bravo }}
        {{ c.charlie }}
        {{ d.delta }}
        {{ e.echo }}
    variables:
      a.alpha:
        prompt: "alpha"
      b.bravo:
        shell: "printf bravo"
      c.charlie:
        static: "charlie"
      d.delta:
        select:
          text: Select the version level that shall be incremented
          options:
            alpha:
              display: alpha
              value:
                static: alpha
            bravo:
              display: bravo
              value:
                shell: printf bravo
      e.echo:
        check:
          text: Select the components that are affected
          separator: ", "
          options:
            alpha:
              display: alpha
              value:
                static: alpha
            bravo:
              display: bravo
              value:
                shell: printf bravo
      f.foxtrot:
        env: "FOXTROT"
  three:
    content:
      inline: |-
        {{ test }}
        {{ _decode "dGVzdA==" }}
    helpers:
      "_decode": printf "$(printf $VALUE | base64 -D)"
    variables:
      test:
        static: "test"

行为 输入
arg 通过命令行输入期望输入作为参数 None
env 从指定的环境变量中检索值 None
static 简单地用静态值替换变量 None
prompt 提示用户输入文本(可以为空) 提示
shell 调用 shell 命令来解析变量(从 STDOUT 读取) None
select 提示用户从列表中选择一个项目 text: 字符串(上下文),options: 列表(可供选择的项目)
check 提示用户从列表中选择 0..n 个项目(多选) text: 字符串(上下文),options: 选项列表 {display: str, value: str}(可供选择的项目)

由于 shell 值提供程序能够运行任意 shell 命令,因此只有当明确设置了 SHELL_TRUST 参数时才允许使用。有关此设置的可能的值,请参阅 render 命令参考。如果 设置,提供程序将抛出无法恢复的错误,程序将终止。

命令参考

免责声明

所有标记为 实验性 的功能 被视为公共 API,因此明确不适用于主要版本内的向后兼容性策略(参见 https://semver.org[semver v2])。使用这些功能时请自行承担风险!

依赖关系

~11–21MB
~292K SLoC