diff --git a/Justfile b/Justfile index e5729137..1a049073 100644 --- a/Justfile +++ b/Justfile @@ -30,9 +30,8 @@ env name action profilePath="~/.environments": drv=$(nix-build -E " let sources = import ./nix/sources.nix {}; pkgs = import sources.nixpkgs { - overlays = [ - (import ./nix/overlays) - (import ./nix/overlays/packages.nix) + overlays = with (import ../overlays); [ + packages ]; }; in pkgs.callPackage ./nix/environments/{{ name }}.nix {} diff --git a/default.nix b/default.nix index 4b0c6093..95921f55 100644 --- a/default.nix +++ b/default.nix @@ -15,9 +15,5 @@ }; packages = import ./nix/packages; - - overlays = { - default = import ./nix/overlays; - packages = import ./nix/overlays/packages.nix; - }; + overlays = import ./nix/overlays; } diff --git a/nix/configurations/tungsten.nix b/nix/configurations/tungsten.nix index b47ead14..5fbbee95 100644 --- a/nix/configurations/tungsten.nix +++ b/nix/configurations/tungsten.nix @@ -31,9 +31,12 @@ in { nixpkgs = { hostPlatform = system; - overlays = map import [ - ../overlays - ../overlays/packages.nix + overlays = with (import ../overlays); [ + agenix + disko + nur + wired-notify + packages ]; # Set NIX_PATH and flake registry at the same time diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 32f520b8..81e36471 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -37,10 +37,14 @@ in }; hostPlatform = system; - overlays = map import [ - ../overlays - ../overlays/packages.nix - ./vanadium/nixos/overlay.nix + overlays = with (import ../overlays); [ + agenix + disko + nur + wired-notify + packages + + (import ./vanadium/nixos/overlay.nix) ]; # Set NIX_PATH and flake registry at the same time diff --git a/nix/overlays/by-name.nix b/nix/overlays/by-name.nix new file mode 100644 index 00000000..432b01e0 --- /dev/null +++ b/nix/overlays/by-name.nix @@ -0,0 +1,12 @@ +let + sources = import ../sources.nix; + lib = import (sources.nixpkgs + "/lib"); +in + lib.mapAttrs + ( + name: _: + import (./by-name + "/${name}/overlay.nix") {inherit sources;} + ) + ( + lib.filterAttrs (_: type: type == "directory") (builtins.readDir ./by-name) + ) diff --git a/nix/overlays/by-name/agenix/overlay.nix b/nix/overlays/by-name/agenix/overlay.nix new file mode 100644 index 00000000..c517561a --- /dev/null +++ b/nix/overlays/by-name/agenix/overlay.nix @@ -0,0 +1,5 @@ +{sources}: +# +final: prev: { + inherit (final.callPackage sources.agenix {}) agenix; +} diff --git a/nix/overlays/by-name/disko/overlay.nix b/nix/overlays/by-name/disko/overlay.nix new file mode 100644 index 00000000..92e12968 --- /dev/null +++ b/nix/overlays/by-name/disko/overlay.nix @@ -0,0 +1,7 @@ +{sources}: +# +final: _: { + disko = + final.callPackage (sources.disko + "/package.nix") + {diskoVersion = sources.disko.version;}; +} diff --git a/nix/overlays/by-name/nur/overlay.nix b/nix/overlays/by-name/nur/overlay.nix new file mode 100644 index 00000000..e4bc5308 --- /dev/null +++ b/nix/overlays/by-name/nur/overlay.nix @@ -0,0 +1,8 @@ +{sources}: +# +_: prev: { + nur = import sources.nur { + nurpkgs = prev; + pkgs = prev; + }; +} diff --git a/nix/overlays/by-name/pin-isabelle-2023/overlay.nix b/nix/overlays/by-name/pin-isabelle-2023/overlay.nix new file mode 100644 index 00000000..6084bf40 --- /dev/null +++ b/nix/overlays/by-name/pin-isabelle-2023/overlay.nix @@ -0,0 +1,6 @@ +{sources}: +# +_: _: { + # Isabelle version 2023 + isabelle-2023 = (import sources.pin-isabelle {}).isabelle; +} diff --git a/nix/overlays/by-name/pin-wireshark/overlay.nix b/nix/overlays/by-name/pin-wireshark/overlay.nix new file mode 100644 index 00000000..499b2cfc --- /dev/null +++ b/nix/overlays/by-name/pin-wireshark/overlay.nix @@ -0,0 +1,7 @@ +{sources}: +# +_: _: { + # Wireshark bug + # https://gitlab.com/wireshark/wireshark/-/issues/19574 + inherit (import sources.pin-wireshark {}) wireshark; +} diff --git a/nix/overlays/by-name/wired-notify/overlay.nix b/nix/overlays/by-name/wired-notify/overlay.nix new file mode 100644 index 00000000..507c90c6 --- /dev/null +++ b/nix/overlays/by-name/wired-notify/overlay.nix @@ -0,0 +1,2 @@ +{sources}: +(import sources.wired-notify).overlays.default diff --git a/nix/overlays/default.nix b/nix/overlays/default.nix index b8331e22..e9a740a0 100644 --- a/nix/overlays/default.nix +++ b/nix/overlays/default.nix @@ -1,31 +1,2 @@ -let - sources = import ../sources.nix; - lib = import (sources.nixpkgs + "/lib"); -in - lib.composeManyExtensions [ - (final: _: { - # Isabelle version 2023 - inherit (import sources.pin-isabelle {}) isabelle; - - # Wireshark bug - # https://gitlab.com/wireshark/wireshark/-/issues/19574 - inherit (import sources.pin-wireshark {}) wireshark; - - wallpapers = final.callPackage sources.wallpapers {}; - - inherit (final.callPackage sources.agenix {}) agenix; - - disko = - final.callPackage (sources.disko + "/package.nix") - {diskoVersion = sources.disko.version;}; - }) - - (_: prev: { - nur = import sources.nur { - nurpkgs = prev; - pkgs = prev; - }; - }) - - ((import sources.wired-notify).overlays.default) - ] +import ./by-name.nix +// {packages = import ./packages.nix;}