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; })) ] )