summaryrefslogtreecommitdiff
path: root/hostnix/mojo/flake.nix
blob: 913d702d3b9cdeba533c0d995f3d094c27c09a66 (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{
  description = "nix-darwin system flake";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-25.11-darwin";
    nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    nix-darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-25.11";
    nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = inputs@{ self, nix-darwin, nixpkgs, nixpkgs-unstable }:
  let
    configuration = { pkgs, ... }: {
      environment.systemPackages = let
        # TODO is there a better way to do this?
        pkgsUnstable = import nixpkgs-unstable {
          localSystem = pkgs.stdenv.system;
          config.allowUnfree = true;
        };
      in
        [
          pkgsUnstable.claude-code
          pkgsUnstable.jujutsu
        ];

      nix.settings.experimental-features = "nix-command flakes";

      # Set Git commit hash for darwin-version.
      system.configurationRevision = self.rev or self.dirtyRev or null;

      # Used for backwards compatibility, please read the changelog before changing.
      # $ darwin-rebuild changelog
      system.stateVersion = 6;

      # The platform the configuration will be used on.
      nixpkgs.hostPlatform = "aarch64-darwin";

      nixpkgs.config.allowUnfree = true;
    };
  in
  {
    darwinConfigurations.mojo = nix-darwin.lib.darwinSystem {
      modules = [ configuration ];
    };
  };
}