improve develop hm-module

This commit is contained in:
xunuwu 2024-09-03 21:36:27 +02:00
parent 229d2677af
commit 8aef77a3f6
Signed by: xun
SSH key fingerprint: SHA256:Uot/1WoAjWAeqLOHA5vYy4phhVydsH7jCPmBjaPZfgI

View file

@ -6,37 +6,26 @@
}: let }: let
cfg = config.xun.develop; cfg = config.xun.develop;
in { in {
options.xun.develop = { options.xun.develop = let
enable = lib.mkEnableOption "develop"; enableOption = name: default: lib.mkEnableOption name // {inherit default;};
git.enable = lib.mkEnableOption "git"; in {
nix.enable = lib.mkEnableOption "nix"; enable = enableOption "develop" false;
tools.enable = lib.mkEnableOption "tools"; git.enable = enableOption "git" true;
docs.enable = lib.mkEnableOption "man caches"; nix.enable = enableOption "nix" true;
lsp.c.enable = lib.mkEnableOption "clangd"; tools.enable = enableOption "tools" true;
docs.enable = enableOption "man caches" false;
lsp.c.enable = enableOption "clangd" false;
}; };
config = let config = lib.mkIf cfg.enable (
conf =
if cfg.enable
then
(cfg
// {
git.enable = true;
nix.enable = true;
tools.enable = true;
docs.enable = true;
lsp.c.enable = true;
})
else cfg;
in
lib.mkMerge [ lib.mkMerge [
(lib.mkIf conf.nix.enable { (lib.mkIf cfg.nix.enable {
home.packages = with pkgs; [nil alejandra]; home.packages = with pkgs; [nil alejandra];
}) })
(lib.mkIf conf.tools.enable { (lib.mkIf cfg.tools.enable {
home.packages = with pkgs; [tokei]; home.packages = with pkgs; [tokei];
}) })
(lib.mkIf conf.git.enable { (lib.mkIf cfg.git.enable {
home.packages = with pkgs; [lazygit]; home.packages = with pkgs; [lazygit];
programs.gh.enable = true; programs.gh.enable = true;
programs.gh-dash.enable = true; programs.gh-dash.enable = true;
@ -62,11 +51,12 @@ in {
userName = "xunuwu"; userName = "xunuwu";
}; };
}) })
(lib.mkIf conf.lsp.c.enable { (lib.mkIf cfg.lsp.c.enable {
home.packages = with pkgs; [clang-tools]; home.packages = with pkgs; [clang-tools];
}) })
(lib.mkIf conf.docs.enable { (lib.mkIf cfg.docs.enable {
programs.man.generateCaches = true; programs.man.generateCaches = true;
}) })
]; ]
);
} }