From a559ac1c79a28af8a4489f01d4db49c7c5eb9197 Mon Sep 17 00:00:00 2001 From: Daylin Morgan Date: Tue, 10 Sep 2024 16:31:26 -0500 Subject: [PATCH] rework overlays handling --- lib/default.nix | 26 ++++++++++---------- lib/extended.nix | 12 +++++++++- lib/generators.nix | 8 ------- modules/languages/nim.nix | 2 -- modules/oizys.nix | 4 +++- overlays/default.nix | 44 +++++++++------------------------- overlays/nim-atlas/default.nix | 12 ---------- 7 files changed, 37 insertions(+), 71 deletions(-) delete mode 100644 overlays/nim-atlas/default.nix diff --git a/lib/default.nix b/lib/default.nix index e6240e9..5ae2c8a 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -3,23 +3,21 @@ let lib = nixpkgs.lib.extend (import ./extended.nix inputs); inherit (builtins) mapAttrs readDir listToAttrs; - inherit (lib) genAttrs pkgFromSystem pkgsFromSystem; + inherit (lib) genAttrs pkgFromSystem pkgsFromSystem loadOverlays; inherit (import ./find-modules.nix { inherit lib; }) findModulesList; inherit (import ./generators.nix { inherit lib self inputs; }) mkIso mkSystem; #supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"]; supportedSystems = [ "x86_64-linux" ]; + forAllSystems = - f: + fn: genAttrs supportedSystems ( system: - f ( + fn ( import nixpkgs { inherit system; - overlays = [ - inputs.nim2nix.overlays.default - (import ../overlays/nimble { inherit inputs; }) - ]; + overlays = (import ../overlays { inherit inputs loadOverlays; }); } ) ); @@ -62,13 +60,13 @@ let ]; }; }); - checks = forAllSystems ( - pkgs: - import ./checks.nix { - inherit inputs lib self; - system = pkgs.system; - } - ); + # checks = forAllSystems ( + # pkgs: + # import ./checks.nix { + # inherit inputs lib self; + # system = pkgs.system; + # } + # ); formatter = forAllSystems (pkgs: pkgs.nixfmt-rfc-style); }; in diff --git a/lib/extended.nix b/lib/extended.nix index 90730e9..862e623 100644 --- a/lib/extended.nix +++ b/lib/extended.nix @@ -3,8 +3,11 @@ let inherit (builtins) listToAttrs substring - filter replaceStrings + map + filter + attrNames + readDir ; inherit (final) concatStringsSep @@ -106,6 +109,12 @@ let pkg = pkgFromSystem system; }; + loadOverlays = + inputs: dir: readDir dir + |> attrNames + |> filter (f: f != "default.nix") + |> map (f: import (../overlays + "/${f}") { inherit inputs; }); + in { inherit @@ -125,5 +134,6 @@ in overlayFrom flakeFromSystem listify + loadOverlays ; } diff --git a/lib/generators.nix b/lib/generators.nix index 44fb7c4..cbff97d 100644 --- a/lib/generators.nix +++ b/lib/generators.nix @@ -49,14 +49,6 @@ let nixosSystem { system = "x86_64-linux"; modules = [ - # TODO: clean this up - ( - { ... }: - { - nixpkgs.overlays = [ inputs.nim2nix.overlays.default ]; - } - ) - ../overlays ../modules/oizys.nix inputs.lix-module.nixosModules.default inputs.hyprland.nixosModules.default diff --git a/modules/languages/nim.nix b/modules/languages/nim.nix index 77e06e0..78e43bf 100644 --- a/modules/languages/nim.nix +++ b/modules/languages/nim.nix @@ -15,8 +15,6 @@ in with pkgs; [ nim - - nim-atlas nimble ] ++ [ nimlangserver ]; diff --git a/modules/oizys.nix b/modules/oizys.nix index 3ed2589..42e6131 100644 --- a/modules/oizys.nix +++ b/modules/oizys.nix @@ -1,11 +1,12 @@ { + inputs, lib, self, hostName, ... }: let - inherit (lib) mkEnableOption mkOption; + inherit (lib) mkEnableOption mkOption loadOverlays; in { imports = with self.nixosModules; [ @@ -54,5 +55,6 @@ in config = { networking.hostName = hostName; time.timeZone = "US/Central"; + nixpkgs.overlays = import ../overlays { inherit inputs loadOverlays; }; }; } diff --git a/overlays/default.nix b/overlays/default.nix index 46b71a8..5c82165 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,33 +1,11 @@ -{ inputs, ... }: -let - inherit (builtins) - map - filter - attrNames - readDir - elem - ; - # execute and import all overlay files in the current - # directory with the given args - # overlays = - # map - # (f: (import (./. + "/${f}") { inherit inputs; })) - # (filter (f: f != "default.nix") (attrNames (readDir ./.))); - ignore = ["nimlangserver"]; - overlays = - readDir ./. - |> attrNames - |> filter (f: f != "default.nix" || elem f ignore) - |> map (f: import (./. + "/${f}") { inherit inputs; }); - -in -{ - nixpkgs.overlays = overlays ++ [ - (final: _prev: { - stable = import inputs.stable { - system = final.system; - config.allowUnfree = true; - }; - }) - ]; -} +{ inputs, loadOverlays }: +(loadOverlays inputs ./.) +++ [ + inputs.nim2nix.overlays.default # adds buildNimPackage + (final: _prev: { + stable = import inputs.stable { + system = final.system; + config.allowUnfree = true; + }; + }) +] diff --git a/overlays/nim-atlas/default.nix b/overlays/nim-atlas/default.nix deleted file mode 100644 index 262ae1d..0000000 --- a/overlays/nim-atlas/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: -(final: prev: { - nim-atlas = prev.nim-atlas.overrideNimAttrs { - version = "unstable"; - src = final.fetchFromGitHub { - owner = "nim-lang"; - repo = "atlas"; - rev = "cbba9fa77fa837931bf3c58e20c1f8cb15a22919"; - hash = "sha256-TsZ8TriVuKEY9/mV6KR89eFOgYrgTqXmyv/vKu362GU="; - }; - }; -})