tvl-depot/default.nix
William Carroll be0e05c669 Prefer home variable rather than hard coded path to readTree
TIL: Nix support the ~ as a home variable, which makes my code more portable
since it's shared between my work laptop and work desktop.
2020-01-27 14:57:47 +00:00

37 lines
939 B
Nix

# At the time of this writing, this configuration was taken from @tazjin's
# default.nix from his depot. I've added, changed, and removed that parts that I
# don't need, and this is what remains.
{ ... }@args:
with builtins;
let
fix = f: let x = f x; in x;
# Global configuration that all packages are called with.
config = pkgs: {
inherit pkgs;
};
readTree' = import ~/depot/nix/readTree {};
# TODO: Find a better way to expose entire monorepo without introducing
# "infinite recursion".
localPkgs = readTree: {
blog = readTree ./blog;
lisp = readTree ./lisp;
third_party = readTree ./third_party;
};
in fix(self: {
config = config self;
# Expose readTree for downstream repo consumers.
readTree = {
__functor = x: (readTree' x.config);
config = self.config;
};
}
# Add local packages as structured by readTree
// (localPkgs (readTree' (self.config // { inherit (self) lib; })))
)