diff options
author | Roman Melnikov | 2023-05-11 11:58:02 +0800 |
---|---|---|
committer | Roman Melnikov | 2023-05-11 16:02:01 +0800 |
commit | f4062956807a0a9703de166ac4a160a7aca1133c (patch) | |
tree | 43b5f3b6fa3889475c38769fc4186add2efa92ec /flake.nix | |
parent | 64160276cd6569694131ed8864d4d35470a84ec3 (diff) |
[#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.
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -106,6 +106,13 @@ home-manager = base: custom base.activationPackage "$PROFILE/activate"; + # Activation script for 'darwinSystem' from nix-darwin. + # 'HOME=/var/root' is needed because 'sudo' on darwin doesn't change 'HOME' directory, + # while 'darwin-rebuild' (which is invoked under the hood) performs some nix-channel + # checks that rely on 'HOME'. As a result, if 'sshUser' is different from root, + # deployment may fail without explicit 'HOME' redefinition. + darwin = base: custom base.config.system.build.toplevel "HOME=/var/root $PROFILE/activate"; + noop = base: custom base ":"; }; |