From b8c33100286ab307f46d3dfe7adf44008cc59d3e Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Sat, 2 May 2020 15:39:07 -0700 Subject: Auto-overlay niv sources This is somewhat experimental, the idea is automatically set the sources from my niv pinned deps. It seems to work, so I'll keep at it and see if I can improve it as issues come up. --- nix/sources-overlay.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 nix/sources-overlay.nix (limited to 'nix/sources-overlay.nix') diff --git a/nix/sources-overlay.nix b/nix/sources-overlay.nix new file mode 100644 index 0000000..b19bb34 --- /dev/null +++ b/nix/sources-overlay.nix @@ -0,0 +1,16 @@ +_: pkgs: + +rec { + pinnedDeps = builtins.attrNames + (builtins.removeAttrs pkgs.sources ["__functor"]); + overridePinnedDeps = builder: pkgs.lib.genAttrs pinnedDeps builder; + + # Modifies a derivation with our source and version, keeping old build + # rules. This will fail if build steps have changed, or if no build + # rules are available upstream.. + overrideSource = name: pkgs.${name}.overrideAttrs (old: old // rec { + name = "${name}-${version}"; + version = pkgs.sources.${name}.version or pkgs.sources.${name}.rev; + src = pkgs.sources.${name}; + }); +} -- cgit v1.2.3