#env-var #regex #env #ripgrep #dotenv #grep #env-file

app env-yoink

env-yoink 是一个 Rust 命令行工具,可轻松从源代码中提取环境变量,支持正则表达式和语言预设

2 个版本 (1 个稳定版)

1.0.0 2024年7月1日
0.1.0-beta.02023年9月23日

#194 in 开发工具

MIT 许可证

11KB
140

env-yoink

env-yoink 是一个多功能的命令行工具,用 Rust 编写,简化了从源代码中提取环境变量的过程。无论您正在处理用 JavaScript、Go、Python 或任何其他编程语言编写的代码,env-yoink 都提供了一个方便的方式来识别和收集环境变量引用。您可以使用它来提高您的开发工作流程并管理配置。

功能

  • 正则表达式和语言预设:env-yoink 允许您使用正则表达式或预定义的语言预设来提取环境变量。

  • 多语言支持:内置对 JavaScript、Go、Python 等流行编程语言的内置支持。

  • 递归扫描:使用惊人的 ripgrep,轻松递归扫描整个项目或目录,同时尊重 .gitignore 文件,确保不会错过任何环境变量引用,即使在复杂的代码库中。

安装

目前,安装 env-yoink 的最佳方式是通过 cargo 命令。请确保您的机器上已安装 Rust,然后运行

cargo install env-yoink

其他包管理器

平台特定的安装方法将很快在各个平台上提供(Homebrew、pacman、APT 等...)

即将推出...

用法

文档

env-yoink --help

Tool to grab (yoink) env variables from a workspace into env example file

Usage: env-yoink [OPTIONS] <WORKSPACE_DIRECTORY>

Arguments:
  <WORKSPACE_DIRECTORY>  Workspace Directory

Options:
  -o, --out <OUTPUT_DIRECTORY>
          Output Directory [default: ./]
  -e, --example-file-name <EXAMPLE_FILE_NAME>
          Env example file [default: .env.example]
  -x, --regex-pattern <REGEX_PATTERN>
          Custom Regex pattern to capture the env variables
  -p, --preset <PRESET>
          Use from the list of regex presets based on the language [possible values: js, python, rust, go]
  -h, --help
          Print help
  -V, --version
          Print version

预设模式

env-yoink './src' --preset js

正则表达式模式

env-yoink './src' --regex-pattern 'process.env.([A-Z_]+)'

示例

假设我们在项目目录中有一个这样的文件。

// my-project/config.ts

// Get the env variables 
const API_URL = process.env.API_URL;
const SECRET_KEY = process.env['SECRET_KEY']; // This incosistency is intentional and for demo purposes only, relax :)

// Initialize the client
const client = new Client(API_URL, SECRET_KEY);

// Call the API...

在项目目录中运行

env-yoink . --preset=js

这将写入文件 .env.example(默认情况下),如下所示

# .env.example

API_URL=
SECRET_KEY=

路线图

  • 更多预设(Deno、Java、C# 等...)
  • 通过不同的包管理器提供 CLI 工具
  • 区分已注释的代码
  • 追加 .env.example 而不是覆盖它
  • 添加 dry-run 选项
  • 详细模式
  • 编写测试
  • 扩展功能以提供使用 dotenv-linter 的代码风格检查
  • 优化性能
  • 更多...

贡献

欢迎并感谢 pull requests 😄。

对于重大更改,请先提出一个 issue 以讨论您想更改的内容。

许可证

MIT

依赖项

~9–18MB
~292K SLoC