#env-var #configuration #environment #settings #sane #manage #toml

app activate

以合理的方式管理特定环境的配置

3 个版本 (重大更新)

0.3.0 2024年2月10日
0.2.0 2024年2月9日
0.1.0 2024年2月6日

#94 in 配置

MIT 许可证

19KB
332

activate

crates.io License: MIT Build Status

以合理的方式管理特定环境的配置。简化您的工作和跨各种设置(如开发、测试、生产等)进行构建的方式。

问题陈述

在不同的环境(如开发、QA、生产等)中运行的代码可能需要不同的配置。常用的解决方案是在构建或运行时加载环境变量或属性文件。但这本身有几个缺点

  • 设置环境可能需要一些额外的强制配置,或者更糟糕的是用户设置。
  • 在环境之间切换很繁琐。
  • 开发者可能必须维护自定义实现和构建脚本。
  • 没有好的解决方案来在环境之间切换整个单一代码库。

解决方案

activate 解决了所有这些问题。

  • 创建一个 active.toml 文件,并声明性地定义您的环境。
  • 加载和卸载环境就像 activate <name> 一样简单,只需 activate 就可以停用。
  • 无需自定义构建脚本,每个环境都有自己的管理文件/目录和环境变量。
  • 使用 activate -r <name> 切换整个单一代码库,所有包含 activate.toml 的目录都将切换到 <name>

示例用法

  1. 您有资产、数据文件、可执行文件或程序文件,这些文件应在不同的环境中使用,例如 Dev、QA 等。

    [dev.links]
    "app/data" = "path/to/dev/data"
    
    [qa.links]
    "app/data" = "path/to/qa/data"
    

    app/data 被创建并链接到活动环境的文件或目录。

  2. 您希望在每个环境中使用不同的环境变量。

    [dev.env]
    HOST = "localhost"
    PORT = 3000
    
    [qa.env]
    HOST = "178.32.44.2"
    PORT = 443
    

    在当前 shell 中运行以下命令(这将卸载任何激活的环境)。

    eval "$(activate -e <name>)"`
    

    或者您可以选择自己或从应用程序中加载活动 .env 文件,位于 .activate/.env。这对于开发容器也有用。只需将 "runArgs": ["--env-file",".activate/.env"] 添加到您的 .devcontainer/devcontainer.json 文件中。

  3. 您正在使用单代码仓库并希望将所有内容切换到特定环境。运行

    activate -r <name>
    

    包含 activate.toml 文件的任何目录/子目录(尊重 .gitignore)将切换到 <name>

activate.toml 架构

[<ENV_NAME>.env]
<ENV_VAR_NAME> = <ENV_VAR_VALUE>

[<ENV_NAME>.links]
"<LINK_PATH_FROM_ROOT>" = "<SOURCE_PATH_FROM_ROOT>"

安装

cargo install activate

路线图

  • 允许同时激活多个环境
  • 允许指定进入和离开环境的脚本
  • 添加默认环境和shell钩子

依赖项

~6–15MB
~184K SLoC