diff options
author | William Carroll <wpcarro@gmail.com> | 2020-03-01T22·16+0000 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-03-01T22·32+0000 |
commit | 42c6ad3bb4ffb8dd70fcd172fa0132644923e141 (patch) | |
tree | 4c647013abb62160bfb4f384580ac3911119463a /default.nix | |
parent | b4689761d9ca284a3f6f3b6c096eb37d5b96fec6 (diff) |
Simpify top-level nix expression
When I first created the monorepo, I borrowed @tazjin's monorepo's. I adapted his depot/default.nix, replacing some of his paths with my paths. This worked for me until recently. I attemped to include <briefcase/monzo_ynab/job> as a systemd unit for my NixOS machine, socrates. NixOS failed to build my changes, and I didn't fully understand my default.nix since I borrowed most of it from @tazjin. I spent the past week looking at the `fix` function. I realized that I didn't fully understand how fixed-point recursion worked. This sent me down a rabbit hole terminating with me studying the Y and Z combinators. Ironically, after understanding the `fix` function, I realized that I didn't need to use it where I was consuming it. I ended up pruning most of my configuration, which resulted in this commit. Yours truly, lambda f: (lambda x: f(x(x)))(lambda x: f(x(x)))
Diffstat (limited to 'default.nix')
-rw-r--r-- | default.nix | 45 |
1 files changed, 12 insertions, 33 deletions
diff --git a/default.nix b/default.nix index 861ae6beee6f..36dba2915b4a 100644 --- a/default.nix +++ b/default.nix @@ -1,38 +1,17 @@ -# 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 = self: { - inherit self; - pkgs = import <nixpkgs> {}; - depot = import <depot> {}; + readTree = import <depot/nix/readTree> {} { + pkgs = import <nixpkgs> {}; + depot = import <depot> {}; briefcase = import <briefcase> {}; }; - - readTree' = import <depot/nix/readTree> {}; - - # TODO: Find a better way to expose entire monorepo without introducing - # "infinite recursion". - localPkgs = readTree: { - nixos = readTree ./nixos; - blog = readTree ./blog; - lisp = readTree ./lisp; - gopkgs = readTree ./gopkgs; - monzo_ynab = readTree ./monzo_ynab; - third_party = readTree ./third_party; - tools = readTree ./tools; - }; -in fix(self: { - config = config self; +in { + nixos = readTree ./nixos; + blog = readTree ./blog; + lisp = readTree ./lisp; + gopkgs = readTree ./gopkgs; + monzo_ynab = readTree ./monzo_ynab; + third_party = readTree ./third_party; + tools = readTree ./tools; } - -# Add local packages as structured by readTree -// (localPkgs (readTree' (self.config // { inherit (self) lib; }))) -) |