mirror of
https://github.com/serokell/deploy-rs.git
synced 2024-09-17 13:37:39 +03:00
f406295680
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.
40 lines
1.2 KiB
Nix
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;
|
|
};
|
|
}
|