nixos-configs/modules/base/common-nix/default.nix
matt1432 6ca0d7248b
All checks were successful
Discord / discord commits (push) Has been skipped
refactor: rename some flake attr directories
2024-12-16 15:51:41 -05:00

46 lines
1.2 KiB
Nix

self: {
config,
lib,
pkgs,
...
}: let
inherit (lib) attrValues filter findFirst hasAttr isAttrs mkIf optionalString;
inherit (self.inputs) nixd nixpkgs;
inherit (config.sops.secrets) access-token;
cfg = config.roles.base;
in {
config = mkIf cfg.enable {
nix = {
# FIXME: infinite recursion if not set
package = let
nixdInput =
findFirst
(x: x.pname == "nix") {}
nixd.packages.x86_64-linux.nixd.buildInputs;
throws = x: !(builtins.tryEval x).success;
hasVersion = x: isAttrs x && hasAttr "version" x;
nixVersions = filter (x: ! throws x && hasVersion x) (attrValues pkgs.nixVersions);
in
findFirst (x: x.version == nixdInput.version) {} nixVersions;
# Minimize dowloads of indirect nixpkgs flakes
registry.nixpkgs.flake = nixpkgs;
nixPath = ["nixpkgs=${nixpkgs}"];
extraOptions =
optionalString (hasAttr "sops" config)
"!include ${access-token.path}";
};
# Global hm settings
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
};
# For accurate stack trace
_file = ./default.nix;
}