nixos-configuration/update-list.nix

54 lines
1.3 KiB
Nix

self:
# MARK: inputs
( let
inputsWithPackages = import self.inputsPath {
pkgs = self.packagesForSystem builtins.currentSystem;
};
in self.lib.concatMapAttrs (name: value: {
"inputs/${name}" = value;
}) inputsWithPackages
)
# MARK: NixOS modules
// ( let
pkgs = self.modifiedNixpkgsPure {
localSystem = builtins.currentSystem;
config.allowUnfree = true;
};
lib = pkgs.lib;
mkUpdater = path: attrpath: extraModule: let
system = pkgs.nixos {
imports = [ path extraModule ];
config = {
_module.args = {
inherit self;
inherit (self) inputs;
};
system.stateVersion = lib.versions.pad 2 lib.trivial.verison;
};
};
in lib.getAttrFromPath ( [ "config" ] ++ attrpath ) system;
in {
"NixOS/nvidia" = mkUpdater ./nixos/modules/nvidia.nix [ "hardware" "nvidia" "package" ] {};
})
# MARK: packages
// ( let
purePkgs = import self.inputs.nixpkgs {
system = builtins.currentSystem;
config = {};
overlays = [];
};
modifiedPkgs = purePkgs.extend (import ./pkgs/top-level/by-name-overlay.nix ./pkgs/by-name);
lib = purePkgs.lib;
in
lib.pipe purePkgs [
lib.attrNames
(lib.removeAttrs (modifiedPkgs))
(lib.filterAttrs (_: lib.hasAttr "updateScript"))
(lib.concatMapAttrs (name: value: {
"packages/${name}" = value;
}))
]
)