From 748d762b1fa7c308cb8c7cc92de919524a5ebed8 Mon Sep 17 00:00:00 2001 From: Adam Woods Date: Tue, 25 Jun 2024 20:08:52 +1000 Subject: [PATCH] feat: add nh --- configuration/nix-darwin/default.nix | 6 +++++- configuration/nix-darwin/nh.nix | 8 ++++++++ flake-module.nix | 7 +++++-- lib/systems/darwin.nix | 1 + templates/expose-configuration/flake.nix | 1 + templates/minimal/flake.nix | 1 + templates/simple-macos/flake.nix | 1 + 7 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 configuration/nix-darwin/nh.nix diff --git a/configuration/nix-darwin/default.nix b/configuration/nix-darwin/default.nix index 0504e07..147a2cb 100644 --- a/configuration/nix-darwin/default.nix +++ b/configuration/nix-darwin/default.nix @@ -4,7 +4,7 @@ pkgs, ... }: { - imports = [./nix.nix ./nixpkgs.nix ./zsh.nix]; + imports = [./nix.nix ./nixpkgs.nix ./nh.nix ./zsh.nix]; # Set the user's name & home directory. This should be # in sync with home manager. @@ -15,4 +15,8 @@ # Always include bash in /etc/shells if nix-machine is being used to enable shells environment.shells = lib.mkIf config.nix-machine.shells.zsh.enable [pkgs.bashInteractive]; + + # Used for backwards compatibility, please read the changelog before changing. + # $ darwin-rebuild changelog + system.stateVersion = 4; } diff --git a/configuration/nix-darwin/nh.nix b/configuration/nix-darwin/nh.nix new file mode 100644 index 0000000..77393cf --- /dev/null +++ b/configuration/nix-darwin/nh.nix @@ -0,0 +1,8 @@ +{...}: { + environment.shellAliases.nh = "nh-darwin"; + + programs.nh = { + enable = true; + clean.enable = true; + }; +} diff --git a/flake-module.nix b/flake-module.nix index e6481e8..4353d8b 100644 --- a/flake-module.nix +++ b/flake-module.nix @@ -12,10 +12,9 @@ modules = flakeLib.config.merge cfg.configurations; darwinSystem = flakeLib.systems.darwin {inherit inputs;}; - asDarwinConfiguration = machineName: machineConfig: (darwinSystem { + asDarwinConfiguration = _machineName: machineConfig: (darwinSystem { inherit modules; inherit machineConfig; - inherit machineName; }); configurationOptions = { @@ -55,5 +54,9 @@ in { imports = [./configuration]; + config.flake.nix-machine.lib = { + mkDarwinMachine = asDarwinConfiguration "_"; + }; + config.flake.darwinConfigurations = builtins.mapAttrs asDarwinConfiguration cfg.macos; } diff --git a/lib/systems/darwin.nix b/lib/systems/darwin.nix index 27a051f..ae1cae9 100644 --- a/lib/systems/darwin.nix +++ b/lib/systems/darwin.nix @@ -21,6 +21,7 @@ imports = modules.home ++ [machineConfig]; }; } + inputs.nh-darwin.nixDarwinModules.prebuiltin ] ++ modules.darwin ++ [machineConfig]; diff --git a/templates/expose-configuration/flake.nix b/templates/expose-configuration/flake.nix index 133475f..37ab3a1 100644 --- a/templates/expose-configuration/flake.nix +++ b/templates/expose-configuration/flake.nix @@ -8,6 +8,7 @@ nix-machine.url = "github:squirmy/nix-machine"; nix-machine.inputs.nixpkgs.follows = "nixpkgs"; flake-parts.url = "github:hercules-ci/flake-parts"; + nh-darwin.url = "github:ToyVo/nh-darwin"; }; outputs = inputs: diff --git a/templates/minimal/flake.nix b/templates/minimal/flake.nix index 6eff089..d46631c 100644 --- a/templates/minimal/flake.nix +++ b/templates/minimal/flake.nix @@ -8,6 +8,7 @@ nix-machine.url = "github:squirmy/nix-machine"; nix-machine.inputs.nixpkgs.follows = "nixpkgs"; flake-parts.url = "github:hercules-ci/flake-parts"; + nh-darwin.url = "github:ToyVo/nh-darwin"; }; outputs = inputs: diff --git a/templates/simple-macos/flake.nix b/templates/simple-macos/flake.nix index f52156c..fa7bcc1 100644 --- a/templates/simple-macos/flake.nix +++ b/templates/simple-macos/flake.nix @@ -8,6 +8,7 @@ nix-machine.url = "github:squirmy/nix-machine"; nix-machine.inputs.nixpkgs.follows = "nixpkgs"; flake-parts.url = "github:hercules-ci/flake-parts"; + nh-darwin.url = "github:ToyVo/nh-darwin"; }; outputs = inputs: