From 4f10d3c9fdcb685ee3666f266cbb48ec0b2c9628 Mon Sep 17 00:00:00 2001 From: Th3Whit3Wolf Date: Sun, 25 Jul 2021 23:50:41 +0100 Subject: [PATCH 1/5] Auto callPackage for packages in ./pkgs --- flake.nix | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/flake.nix b/flake.nix index 774e572f6..295610abe 100644 --- a/flake.nix +++ b/flake.nix @@ -63,6 +63,36 @@ , deploy , ... } @ inputs: + + let + rakePkgs = dir: + let + sieve = name: val: + (name != "default" && name != "bud" && name != "_sources"); + + flattenFiltered = digga.lib.flattenTree + (nixos.lib.filterAttrs sieve (digga.lib.rakeLeaves dir)); + getBasename = name: nixos.lib.last (nixos.lib.splitString "." name); + in + nixos.lib.mapAttrs' (n: v: nixos.lib.nameValuePair (getBasename n) v) + flattenFiltered; + + localPackages = final: prev: + builtins.mapAttrs + (name: value: + let + sources = (import ./pkgs/_sources/generated.nix) { + inherit (prev) fetchurl fetchgit; + }; + package = import (value); + args = builtins.intersectAttrs (builtins.functionArgs package) { + source = sources.${name}; + }; + in + final.callPackage package args) + (rakePkgs (./pkgs)); + + in digga.lib.mkFlake { inherit self inputs; @@ -78,6 +108,7 @@ agenix.overlay nvfetcher.overlay deploy.overlay + localPackages ./pkgs/default.nix ]; }; From 6d05060a8b8a0ea35ee774ba302d48fcb5508c50 Mon Sep 17 00:00:00 2001 From: Th3Whit3Wolf Date: Sun, 25 Jul 2021 23:51:14 +0100 Subject: [PATCH 2/5] Start collecting rules for auto building pkgSets --- pkgs/default.nix | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/pkgs/default.nix b/pkgs/default.nix index 924a2300c..39919df1c 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,5 +1,29 @@ -final: prev: { - # keep sources this first - sources = prev.callPackage (import ./_sources/generated.nix) { }; - # then, call packages with `final.callPackage` +self: super: +let + sources = (import ./_sources/generated.nix) { inherit (self) fetchurl fetchgit; }; + + mkVimPlugin = plugin: + self.vimUtils.buildVimPluginFrom2Nix { + inherit (plugin) pname version src; + }; + + newPkgsSet = pkgSet: + let + prefix = "${pkgSet}-"; + + pkgSetBuilder = { + "vimPlugins" = mkVimPlugin; + }.${pkgSet}; + + + pkgsInSources = self.lib.mapAttrs' (name: value: self.lib.nameValuePair (self.lib.removePrefix prefix name) (value)) (self.lib.filterAttrs (n: v: self.lib.hasPrefix prefix n) sources); + in + self.lib.mapAttrs (n: v: pkgSetBuilder v) pkgsInSources; + +in +{ + inherit sources; + + vimPlugins = super.vimPlugins // (newPkgsSet "vimPlugins"); + } From 98ce9c896680331373528052baaef3eea570f234 Mon Sep 17 00:00:00 2001 From: David Karrick <48275422+Th3Whit3Wolf@users.noreply.github.com> Date: Mon, 2 Aug 2021 20:14:51 +0000 Subject: [PATCH 3/5] Conform overlay arguements with flake convention --- pkgs/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/default.nix b/pkgs/default.nix index 39919df1c..79d12a058 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,4 +1,4 @@ -self: super: +final: prev: let sources = (import ./_sources/generated.nix) { inherit (self) fetchurl fetchgit; }; From fc5724eadb60efcb64682dc2de3e55ed8c6433b3 Mon Sep 17 00:00:00 2001 From: David Karrick <48275422+Th3Whit3Wolf@users.noreply.github.com> Date: Mon, 2 Aug 2021 20:21:15 +0000 Subject: [PATCH 4/5] Remove rakePkgs and localPackages overlay These were removed as they do not belong inside of flakes.nix. --- flake.nix | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/flake.nix b/flake.nix index 295610abe..774e572f6 100644 --- a/flake.nix +++ b/flake.nix @@ -63,36 +63,6 @@ , deploy , ... } @ inputs: - - let - rakePkgs = dir: - let - sieve = name: val: - (name != "default" && name != "bud" && name != "_sources"); - - flattenFiltered = digga.lib.flattenTree - (nixos.lib.filterAttrs sieve (digga.lib.rakeLeaves dir)); - getBasename = name: nixos.lib.last (nixos.lib.splitString "." name); - in - nixos.lib.mapAttrs' (n: v: nixos.lib.nameValuePair (getBasename n) v) - flattenFiltered; - - localPackages = final: prev: - builtins.mapAttrs - (name: value: - let - sources = (import ./pkgs/_sources/generated.nix) { - inherit (prev) fetchurl fetchgit; - }; - package = import (value); - args = builtins.intersectAttrs (builtins.functionArgs package) { - source = sources.${name}; - }; - in - final.callPackage package args) - (rakePkgs (./pkgs)); - - in digga.lib.mkFlake { inherit self inputs; @@ -108,7 +78,6 @@ agenix.overlay nvfetcher.overlay deploy.overlay - localPackages ./pkgs/default.nix ]; }; From 9814e490c37e17c6951d9b5fa2658035bd000062 Mon Sep 17 00:00:00 2001 From: David Karrick <48275422+Th3Whit3Wolf@users.noreply.github.com> Date: Mon, 2 Aug 2021 21:42:52 +0000 Subject: [PATCH 5/5] Fix: repalced former arguements replaced all occurrences of self/super with final/prev --- pkgs/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/default.nix b/pkgs/default.nix index 79d12a058..911518c5b 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,9 +1,9 @@ final: prev: let - sources = (import ./_sources/generated.nix) { inherit (self) fetchurl fetchgit; }; + sources = (import ./_sources/generated.nix) { inherit (final) fetchurl fetchgit; }; mkVimPlugin = plugin: - self.vimUtils.buildVimPluginFrom2Nix { + final.vimUtils.buildVimPluginFrom2Nix { inherit (plugin) pname version src; }; @@ -16,14 +16,14 @@ let }.${pkgSet}; - pkgsInSources = self.lib.mapAttrs' (name: value: self.lib.nameValuePair (self.lib.removePrefix prefix name) (value)) (self.lib.filterAttrs (n: v: self.lib.hasPrefix prefix n) sources); + pkgsInSources = final.lib.mapAttrs' (name: value: final.lib.nameValuePair (final.lib.removePrefix prefix name) (value)) (final.lib.filterAttrs (n: v: final.lib.hasPrefix prefix n) sources); in - self.lib.mapAttrs (n: v: pkgSetBuilder v) pkgsInSources; + final.lib.mapAttrs (n: v: pkgSetBuilder v) pkgsInSources; in { inherit sources; - vimPlugins = super.vimPlugins // (newPkgsSet "vimPlugins"); + vimPlugins = prev.vimPlugins // (newPkgsSet "vimPlugins"); }