summaryrefslogtreecommitdiff
path: root/default.nix
blob: 9787e51c1c60a247b616a1a8fe4de994a30ab0f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{ nixpkgs ? <nixpkgs>
, configuration ? <darwin-config>
, lib ? pkgs.lib
, pkgs ? import nixpkgs { inherit system; }
, system ? builtins.currentSystem
}:

let
  evalConfig = import ./eval-config.nix { inherit lib; };

  eval = evalConfig {
    inherit system;
    modules = [ configuration ];
    inputs = { inherit nixpkgs; };
  };

  # The source code of this repo needed by the [un]installers.
  nix-darwin = lib.cleanSource (
    lib.cleanSourceWith {
      # We explicitly specify a name here otherwise `cleanSource` will use the
      # basename of ./.  which might be different for different clones of this
      # repo leading to non-reproducible outputs.
      name = "nix-darwin";
      src = ./.;
    }
  );
in

eval // {
  installer = pkgs.callPackage ./pkgs/darwin-installer { inherit nix-darwin; };
  uninstaller = pkgs.callPackage ./pkgs/darwin-uninstaller { inherit nix-darwin; };
}