EnvHub is a simple tool to manage dotfiles and packages accross multiple machines.
Written in Rust, internally it uses nix/homebrew/pkgx/devbox to manage packages and home-manager/stow to manage dotfiles.
π Installation
Using Cargo :
cargo install envhub
Using Nix :
nix profile install --experimental-features "nix-command flakes" github:tsirysndr/envhub
Compile from source :
git clone https://github.com/tsirysndr/envhub.git
cd envhub
nix develop --experimental-features "nix-command flakes"
cargo install --path crates/cli
envhub --help
Using Homebrew :
brew install tsirysndr/tap/envhub
Or download the latest release for your platform here.
π Example
The following example will install the hello
package, set the EDITOR
environment variable to vim
, and copy the .screenrc
and gradle.properties
files from the current directory to the home directory.
# Path: envhub.hcl
packages = [
"hello"
]
envs {
"EDITOR" = "vim"
}
file ".screenrc" {
source = ".screenrc"
}
file ".gradle/gradle.properties" {
content = "org.gradle.daemon=true"
}