2 个版本 (1 个稳定版)

1.0.0 2023 年 5 月 25 日
0.1.0 2023 年 5 月 23 日

#8 in #更新

每月 28 次下载

BSD-2-Clause 协议

42KB
641

hdn:更新 home.nix 的工具

Home Manager 很棒,但是每次安装软件包时都要运行 home-manager edit、添加软件包到文件,然后运行 home-manager switch,这很麻烦。

我希望有一个像 Poetry 那样的工作流程,我可以通过一个命令添加软件包并安装它。所以,我创建了 hdn

例如,您可以使用 hdn add pkgs.hello pkgs.cowsay 调用它。

image

这将 pkgs.hellopkgs.cowsay 添加到 home.packages 属性中的 home.nix,并调用 home-manager switch

如果 home-manager switch 失败,它将自动将 home.nix 回滚到其原始状态。

要求

此程序需要

  • 您在 PATH 上有 home-manger
  • home.nix 位于默认位置之一(即,~/.config/home-manager/~/.config/nixpkgs/~/.nixpkgs/
  • home.nix 包含属性 home.packages,用户环境的软件包列表

这些要求应与默认的 home-manager 安装一致。

免责声明

此程序使用 Rust,实际上我不知道如何用 Rust 编程。

(我选择 Rust 是因为我发现了一个用于轻松读取和写入 nix 文件的 Rust 库。)

将来我会回去,真正学习 Rust,并重新编写它,但现在是自担风险使用。

安装

版本在 crates.io 上可用。

cargo install hdn

致谢

此项目得以实现得益于他人的工作(我合法地将其纳入)。

我感谢 Victor Fuentes 在 nix-editor 上的工作;nix 解析和编写的代码来自他的项目。

我要感谢Armin Ronacher在similar项目上的工作;显示home.nix差异的代码来自他的项目。

依赖项

约3.5MB
约64K SLoC