Skip to content

Instantly share code, notes, and snippets.

@zetavg
Created April 6, 2019 15:04
Show Gist options
  • Save zetavg/2cfcf5ed563b877127b680d80de23b93 to your computer and use it in GitHub Desktop.
Save zetavg/2cfcf5ed563b877127b680d80de23b93 to your computer and use it in GitHub Desktop.
let
nixpkgs = import <nixpkgs> {};
overlays = [
(self: super: { aa-bb = "${self.aa} ${self.bb}"; })
(self: super: { aa = "a"; })
(self: super: { bb = "b"; })
(self: super: { aa = super.aa + "a"; })
(self: super: { bb = "bbb"; })
];
inherit (builtins) foldl';
combineOverlays =
overlays: self: super:
foldl' (
lastOutput: overlay:
let
lastSuper = super // lastOutput;
output = overlay self lastSuper;
newOutput = lastOutput // output;
in newOutput
) {} overlays;
all-overlays = combineOverlays overlays;
pkgs = nixpkgs.extend all-overlays;
in {
aa = pkgs.aa;
bb = pkgs.bb;
aa-bb = pkgs.aa-bb;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment