Manage your dotfiles and packages with ease. Define your $HOME as Code πŸ’» πŸš€ ✨

Overview

EnvHub

FlakeHub crates downloads discord

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.

 alt text

🚚 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"
}

See demo and examples for a more complete example.

You might also like...
Ember is a minimalistic Rust library for creating 2D graphics, games, and interactive visualizations with ease and simplicity.
Ember is a minimalistic Rust library for creating 2D graphics, games, and interactive visualizations with ease and simplicity.

Ember Ember is a simple and fun 2D rendering library for Rust, allowing you to quickly create graphics and interactive applications with ease. It uses

Govee2MQTT: Connect Govee lights and devices to Home Assistant

Govee to MQTT bridge for Home Assistant This repo provides a govee executable whose primary purpose is to act as a bridge between Govee devices and Ho

Interface definition generator and standard for Move packages.

Move IDL Interface definition generator and standard for Move packages. Documentation is currently extremely sparse but will be improved in the near f

Fast KubeJS script manager. Includes version control and compatibility with KJSPKG packages.
Fast KubeJS script manager. Includes version control and compatibility with KJSPKG packages.

CarbonJS A KubeJS script manager Features πŸ”₯ Super fast βš™οΈ Version control πŸ“ Constantly new scripts being added βœ… Easy to use 🧱 Compatibility with K

Turn static CLI commands into TUIs with ease
Turn static CLI commands into TUIs with ease

lazycli Turn static CLI commands into TUIs with ease Demo: Usage Pick a command that spits out either a list or table of content, like ls, docker ps,

Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're working with files or directories, this tool simplifies common file operations with ease.

Rust FileOps Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're w

Search PyPI for packages from the command line.
Search PyPI for packages from the command line.

PPS -- Python Package Index Search Search the PyPI for packages by name, which was done by pip search in the past. This was heavily inspired by pip_se

A Rust CLI to provide last publish dates for packages in a package-lock.json file

NPM Package Age A Rust CLI which if you provide a npm lockfile (package-lock.json to start), it will give you a listing of all of the packages & the l

Readme generator for Move packages.

Move Readme Readme generator for Move packages. Documentation is currently extremely sparse but will be improved in the near future. Setup Install the

Releases(v0.2.2)
Owner
Tsiry Sandratraina
Software Engineer, enjoy using Go/Rust/Elixir/Gleam and always keen to learn new things. I love to simplify and create user-friendly tools. πŸ› οΈ πŸ’» πŸš€βœ¨
Tsiry Sandratraina
⚑️(cd with env) Is a configurable cd wrapper that lets you define your environment per directory.

⚑️cdwe (cd with env) A simple configurable cd wrapper that provides powerful utilities for customizing your envionment per directory. (For ZSH / BASH

teo 20 Aug 6, 2023
πŸ¦€ Syncing dotfiles and more

DT DT allows you to sync/populate configuration files at will. It currently provides a CLI tool dt-cli. Usage The command line interface dt-cli takes

Gaoyang Zhang 17 Dec 16, 2022
Tool for managing dotfiles directories; Heavily based on rcm.

Paro paro : to prepare, get ready / set, put / furnish, supply. Tool for managing dotfiles directories; Heavily based on rcm. TODO Rust Boilerplate CI

Rafael Delboni 7 Nov 20, 2022
No non-sense dotfiles linker

dotlink A simple program that can help you link all your dotfiles in place. Supports multiple presets, in order to avoid linking every file in every m

null 26 Apr 19, 2023
πŸ›‘οΈ Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home instance

AdGuardian-Term Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home instance About AdGuardian Terminal Eddition - Keep a

Alicia Sykes 629 Jun 14, 2023
Upkeep your websites and web applications with ease from the comfort of the command line.

Upkeep Upkeep your websites and web applications with ease from the comfort of the command line. Explore the docs Β» View Demo Β· Report Bug Β· Request F

Kevin B 0 Dec 24, 2021
Captures packets and streams them to other devices. Built for home network analysis and A&D CTFs.

?? shiny-donut shiny-donut is a packet capture app that supports streaming packets from a remote system to another device. The main use for this is to

Justin Perez 3 Nov 30, 2022
Check the reproducibility status of your Arch Linux packages (read-only mirror)

arch-repro-status A CLI tool for querying the reproducibility status of the Arch Linux packages using data from a rebuilderd instance such as reproduc

Arch Linux 12 Nov 16, 2022
Convert your .NET dependencies to the Directory.Packages.props format

directory-packages-props-converter Converts your projects to use Central Package Management. <PackageReference> dependencies have their Version remove

Jeroen Vannevel 18 Aug 7, 2023
H2O Open Source Kubernetes operator and a command-line tool to ease deployment (and undeployment) of H2O open-source machine learning platform H2O-3 to Kubernetes.

H2O Kubernetes Repository with official tools to aid the deployment of H2O Machine Learning platform to Kubernetes. There are two essential tools to b

H2O.ai 16 Nov 12, 2022