diff --git a/cachix/src/Cachix/Deploy/Activate.hs b/cachix/src/Cachix/Deploy/Activate.hs index 0f54ce6..2bc0d7d 100644 --- a/src/Cachix/Deploy/Activate.hs +++ b/src/Cachix/Deploy/Activate.hs @@ -122,6 +122,8 @@ getActivationScript profile storePath = do isNixDarwin <- checkPath "darwin-version" isHomeManager <- checkPath "hm-version" user <- InstallationMode.getUser + oldKernelPath <- Directory.getSymbolicLinkTarget "/run/booted-system/kernel" + newKernelPath <- Directory.getSymbolicLinkTarget $ toS storePath "kernel" let systemProfileDir = "/nix/var/nix/profiles" let perUserProfileDir = systemProfileDir "per-user" toS user let mkProfilePath profileBaseDir defaultProfile = @@ -136,7 +138,7 @@ getActivationScript profile storePath = do let profilePath = mkProfilePath systemProfileDir "system" in ( profilePath, [ setNewProfile profilePath, - (toS storePath "bin/switch-to-configuration", ["switch"]) + (toS storePath "bin/switch-to-configuration", [if oldKernelPath == newKernelPath then "switch" else "boot"]) ] ) (_, True, _) ->