deploy-rs/examples/darwin/flake.nix
Roman Melnikov f406295680
[#210] Add activation script for darwin system and provide a usage example
Problem: It's possible to use 'deploy-rs' for deploying 'darwinSystem'
configuration from 'nix-darwin' to a darwin system. However, there is no
dedicated activatiot script for darwin and thus one has to come up with
'custom' activation script.

Solution:
1) Add 'darwin' attribute to 'lib.activate' that provides a script that
   should be used to activate 'darwinSystem' config with 'deploy-rs'.
2) Add a new 'examples/darwin' example that provides simple flake for
   deploying configuration to a darwin target.
2023-05-11 16:02:01 +08:00

40 lines
1.2 KiB
Nix

{
description = "Deploy simple 'darwinSystem' to a darwin machine";
inputs.deploy-rs.url = "github:serokell/deploy-rs";
inputs.darwin.url = "github:LnL7/nix-darwin";
outputs = { self, nixpkgs, deploy-rs, darwin }: {
darwinConfigurations.example = darwin.lib.darwinSystem {
system = "x86_64-darwin";
modules = [
({lib, config, pkgs, ...}: {
services.nix-daemon.enable = true;
nix = {
settings = {
trusted-users = [ "rvem" ];
};
extraOptions = ''
experimental-features = flakes nix-command
'';
};
# nix commands are added to PATH in the zsh config
programs.zsh.enable = true;
})
];
};
deploy = {
# remoteBuild = true; # Uncomment in case the system you're deploying from is not darwin
nodes.example = {
hostname = "localhost";
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-darwin.activate.darwin self.darwinConfigurations.example;
};
};
};
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
};
}