Add support for overriding with local package until target version

This commit is contained in:
Andrew Kvalheim 2022-08-10 18:05:43 -07:00
parent a59af5ca20
commit f899bd8f43

View file

@ -1,11 +1,20 @@
let
unstable = import <unstable> { overlays = [ ]; };
unstableUntilVersion = pv: _: pkgs: with pkgs.lib; builtins.mapAttrs
(p: v: assert assertMsg (! (pkgs ? ${p} && versionAtLeast pkgs.${p}.version v))
"${p} ${v} no longer requires an override"; unstable.${p})
overrideUntilVersion = pv: _: pkgs: with pkgs.lib; builtins.mapAttrs
(p: v:
let
local = ../packages/${p}.nix;
inStable = pkgs ? ${p} && versionAtLeast pkgs.${p}.version v;
inUnstable = unstable ? ${p} && versionAtLeast unstable.${p}.version v;
inLocal = pathExists local;
in
assert assertMsg (! inStable) "${p} ${v} no longer requires an override"; if inUnstable
then assert assertMsg (! inLocal) "${p} ${v} no longer requires local packaging"; unstable.${p}
else pkgs.callPackage local { }
)
pv;
in
unstableUntilVersion {
overrideUntilVersion {
aws-sam-cli = "1.52.0";
darktable = "4.0.0";
efficient-compression-tool = "0.9.1";