#env-file #env-var #env #dotenv #run-command #12-factor

app readenv

一个简单的程序,用于读取 .env 文件并使用它来运行指定的命令

11 个版本

0.3.0 2023 年 3 月 5 日
0.2.6 2023 年 3 月 5 日
0.2.5 2020 年 7 月 5 日
0.2.4 2020 年 4 月 27 日
0.1.2 2020 年 4 月 26 日

#314配置

每月 46 次下载

MIT 许可证

6KB

ReadEnv

一个简单的程序,用于读取 .env 文件并使用它来运行指定的命令。

不再手动加载环境变量或污染您的解释器配置文件。

工作原理

  1. 读取当前环境变量
  2. 在当前目录或父目录中读取 .env 文件
  3. 将读取自 .env 文件的环境变量扩展到当前环境变量
  4. 使用生成的环境变量启动 <COMMAND>
  5. 用启动的进程替换当前进程

安装

cargo install readenv

使用方法

  1. 在当前目录或父目录中创建 .env 文件,使用 <KEY>=<VALUE> 结构

  2. 运行应用程序

    renv <COMMAND>
    

运行期间,<COMMAND> 的行为与直接执行完全相同,包括环境变量、stdin、stdout、stderr、管道支持以及信号处理。

.env 格式

.env 文件的支持由 dotenv 库提供。有关格式,请参阅其 文档

配方

Django

要运行一个 Django 项目,需要一个设置文件。一种方法是为每种环境(例如,开发和生产)拥有不同的设置文件。

最简单的方法是为设置模块的名称定义环境变量 DJANGO_SETTINGS_MODULE

现在创建 .env 文件(给定的设置模块是 local_settings

echo 'DJANGO_SETTINGS_MODULE=local_settings' >> .env

现在使用一条命令运行 Django 服务器

renv django-admin.py runserver

Virtualenv

Virtualenv 是一个用于隔离项目 Python 依赖项的好工具。

要切换到指定的虚拟环境,需要使用以下命令:. <VENV>/bin/activate

让我们创建.env文件(给定的虚拟环境目录为.venv

echo "VIRTUAL_ENV=$PWD/.venv" >> .env
echo "PATH=$PWD/.venv/bin:\${PATH}" >> .env

现在检查Python解释器

renv which python

结果应该是

$PWD/.venv/bin/python

尝试pip

renv pip freeze

结果应该是您虚拟环境中安装的依赖项列表。

设计考虑因素

12因子应用方法非常棒,但可能会有些枯燥。一个简单的工具,可以自动处理环境变量,会很有帮助。

这个工具应该是任何应用的即插即用替代品,因此它

  • 必须支持stdin、stdout和stderr
  • 可以在管道中使用
  • 必须以相同的方式处理信号(例如SIGTERMSIGKILL

此外,以下几点也很理想

  • 应用程序体积小
  • 内存占用低
  • 不依赖于使用的shell
  • 安全

解决方案

  • 生成二进制程序
  • 使用Rust
  • 用执行命令替换其进程(例如BASH中的exec

致敬

感谢dotenvdotenv库的团队完成了大部分工作 ;-)

依赖项

~72-285KB