From 018e2e7badc4fe6272498ba5b93339c065baf886 Mon Sep 17 00:00:00 2001 From: ooks-io Date: Sun, 27 Oct 2024 23:17:11 +1100 Subject: [PATCH] nixos: move nh to workstation --- modules/nixos/base/nix.nix | 22 ++++++++++++++-------- modules/nixos/workstation/programs/nh.nix | 8 ++++++++ 2 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 modules/nixos/workstation/programs/nh.nix diff --git a/modules/nixos/base/nix.nix b/modules/nixos/base/nix.nix index 154559c..6735afc 100644 --- a/modules/nixos/base/nix.nix +++ b/modules/nixos/base/nix.nix @@ -1,4 +1,5 @@ { + inputs', inputs, pkgs, lib, @@ -7,7 +8,7 @@ }: let inherit (builtins) attrValues; inherit (lib) mkIf mapAttrsToList; - inherit (config.ooknet.host) admin; + inherit (config.ooknet.host) role admin; in { environment = { # disable default nix packages @@ -15,11 +16,21 @@ in { defaultPackages = []; systemPackages = attrValues { inherit (pkgs) git deadnix statix; - inherit (inputs.agenix.packages.${pkgs.system}) default; + inherit (inputs'.agenix.packages) default; }; + + # location of the configuration flake + variables.FLAKE = "/home/${admin.name}/.config/ooknet"; }; nix = { # package = pkgs.lix; + + # collect garbage + gc = { + automatic = true; + dates = "Sun *-*-* 14:00"; + options = "--delete-older-than 14d"; + }; registry = { nixpkgs.flake = inputs.nixpkgs; default.flake = inputs.nixpkgs; @@ -56,14 +67,9 @@ in { }; # nix rebuild utililty - programs.nh = { + programs.nh = mkIf (role == "workstation") { enable = true; # sets an environment variable FLAKE that nh will refer to by default flake = mkIf admin.homeManager "/home/${admin.name}/.config/ooknet"; - # garbage collect - clean = { - enable = true; - extraArgs = "--keep 5 --keep-since 14d"; - }; }; } diff --git a/modules/nixos/workstation/programs/nh.nix b/modules/nixos/workstation/programs/nh.nix new file mode 100644 index 0000000..eca53d7 --- /dev/null +++ b/modules/nixos/workstation/programs/nh.nix @@ -0,0 +1,8 @@ +{config, ...}: let + inherit (config.ooknet.host) admin; +in { + programs.nh = { + enable = true; + flake = "/home/${admin.name}/.config/ooknet"; + }; +}