2 releases (1 stable)
1.0.0 | May 25, 2023 |
---|---|
0.1.0 | May 23, 2023 |
#8 in #updating
28 downloads per month
42KB
641 lines
hdn: utility for updating home.nix
Home Manager is great,
but it's tedious to run home-manager edit
,
add your package to the file,
and run home-manager switch
every time you want to install a package.
I wanted a workflow like Poetry,
where I could just add a package and install it in one command.
So, I made hdn
.
You can call it with e.g. hdn add pkgs.hello pkgs.cowsay
:
This adds pkgs.hello
and pkgs.cowsay
to the home.packages
attribute in home.nix
, and calls home-manager switch
.
If home-manager switch
fails, it will automatically roll back home.nix
to its original state.
Requirements
This program requires that:
- you have
home-manger
on your PATH home.nix
lives in one of the default locations (namely,~/.config/home-manager/
,~/.config/nixpkgs/
,~/.nixpkgs/
)home.nix
contains the attributehome.packages
, the list of packages in the user environment
These requirements should be satisfied with the default home-manager installation.
Disclaimer
This program uses Rust, and I don't actually know how to program in Rust.
(I chose Rust because I found a Rust library for easily reading and writing nix files.)
Someday I'll go back, actually learn Rust, and rewrite this, but for now, use at your own risk.
Installation
Releases are available on crates.io.
cargo install hdn
Acknowledgements
This project was made possible by the work of others (that I stole legally incorporated).
I thank Victor Fuentes for his work on nix-editor; the code for nix parsing and writing comes from his project.
I thank Armin Ronacher for his work on similar;
the code that displays the home.nix
diff comes from his project.
Dependencies
~3.5MB
~64K SLoC