54 lines
1.3 KiB
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 ./nix-os/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;
|
|
}))
|
|
]
|
|
)
|