#dotfiles #环境 #Nix #shell 环境 #shell

应用程序 envhub

轻松管理您的 dotfiles 和软件包

7 个版本

0.2.18 2024 年 4 月 3 日
0.2.17 2024 年 3 月 15 日
0.2.12 2024 年 2 月 23 日
0.2.2 2023 年 10 月 11 日
0.1.0 2023 年 10 月 10 日

#1729命令行工具

Download history 1/week @ 2024-05-19 7/week @ 2024-06-30 91/week @ 2024-07-07 73/week @ 2024-07-28

164 每月下载量

MIT 协议

77KB
2K SLoC

EnvHub

FlakeHub flakestry.dev crates downloads ci discord

EnvHub 是一个简单的工具,用于跨多台机器管理 dotfiles 和软件包。

Rust 编写,内部使用 nix/homebrew/pkgx/devbox 来管理软件包,以及使用 home-manager/stow 来管理 dotfiles。

Made with VHS

🚚 安装

使用 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,并将当前目录中的 .screenrcgradle.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