7 个版本
0.2.18 | 2024 年 4 月 3 日 |
---|---|
0.2.17 | 2024 年 3 月 15 日 |
0.2.12 | 2024 年 2 月 23 日 |
0.2.2 |
|
0.1.0 |
|
#1729 在 命令行工具
164 每月下载量
77KB
2K SLoC
EnvHub 是一个简单的工具,用于跨多台机器管理 dotfiles 和软件包。
用 Rust 编写,内部使用 nix/homebrew/pkgx/devbox 来管理软件包,以及使用 home-manager/stow 来管理 dotfiles。
🚚 安装
使用 bash
curl -sSL https://install.envhub.sh | bash
使用 Cargo
cargo install envhub
使用 Nix
nix profile install --experimental-features "nix-command flakes" github:tsirysndr/envhub
从源代码编译
git clone https://github.com/tsirysndr/envhub.git
cd envhub
nix develop --experimental-features "nix-command flakes"
cargo install --path crates/cli
envhub --help
使用 Homebrew
brew install tsirysndr/tap/envhub
或者从您的平台下载最新版本 这里。
🚀 快速开始
初始化一个新环境
envhub init
它将在当前目录中创建一个新的 envhub.hcl
文件和一个 dotfiles
目录。
然后您可以编辑 envhub.hcl
文件以添加软件包,并将 dotfiles 添加到 dotfiles
目录。
启用环境
envhub use
📚 示例
以下示例将安装 hello
软件包,将 EDITOR
环境变量设置为 vim
,并将当前目录中的 .screenrc
和 gradle.properties
文件复制到主目录。
# Path: envhub.hcl
packages = [
"hello"
]
envs {
"EDITOR" = "vim"
}
file ".screenrc" {
source = ".screenrc"
}
file ".gradle/gradle.properties" {
content = "org.gradle.daemon=true"
}
🧩 作为 Dagger 模块
从命令行调用
dagger -m github.com/tsirysndr/daggerverse/envhub call \
use --environment github:tsirysndr/dotfiles-example \
--src .
从 Fluent CI 模块调用
import { use } from 'jsr:@fx/envhub';
await use(
".",
"github:tsirysndr/dotfiles-example"
);
作为 GitHub Action
您可以将 EnvHub 作为 GitHub Action 使用,以在 CI/CD 工作流程中管理您的 dotfiles 和软件包。
- uses: tsirysndr/setup-envhub@v1
with:
version: 'v0.2.18'
- run: envhub --help
依赖关系
~15–27MB
~370K SLoC