From 16c333cfde3efbc6620bedc6e316c6549c782061 Mon Sep 17 00:00:00 2001
From: zowoq <59103226+zowoq@users.noreply.github.com>
Date: Fri, 3 Jan 2025 13:45:07 +1000
Subject: [PATCH] modules/nixos/common: use preSwitchChecks for update diff

---
 modules/nixos/common/default.nix | 9 +++++++++
 modules/nixos/common/update.bash | 5 -----
 modules/nixos/common/update.nix  | 1 -
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/modules/nixos/common/default.nix b/modules/nixos/common/default.nix
index 45b27f4..54c99c8 100644
--- a/modules/nixos/common/default.nix
+++ b/modules/nixos/common/default.nix
@@ -18,6 +18,15 @@
     inputs.srvos.nixosModules.server
   ];
 
+  srvos.update-diff.enable = false;
+  system.preSwitchChecks.update-diff = ''
+    if [[ -e /run/current-system && -e "''${1-}" ]]; then
+      echo "--- diff to current-system"
+      ${pkgs.nvd}/bin/nvd --nix-bin-dir=${config.nix.package}/bin diff /run/current-system "''${1-}"
+      echo "---"
+    fi
+  '';
+
   # Hard-link duplicated files
   nix.settings.auto-optimise-store = true;
   nix.optimise.automatic = false;
diff --git a/modules/nixos/common/update.bash b/modules/nixos/common/update.bash
index 817166c..3ce6a88 100644
--- a/modules/nixos/common/update.bash
+++ b/modules/nixos/common/update.bash
@@ -20,11 +20,6 @@ nix-env --profile /nix/var/nix/profiles/system --set "$p"
 booted="$(readlink /run/booted-system/{initrd,kernel,kernel-modules} && cat /run/booted-system/kernel-params)"
 built="$(readlink "$p"/{initrd,kernel,kernel-modules} && cat "$p"/kernel-params)"
 if [[ $booted != "$built" ]]; then
-  if [[ -e /run/current-system ]]; then
-    echo "--- diff to current-system"
-    nvd diff /run/current-system "$p"
-    echo "---"
-  fi
   /nix/var/nix/profiles/system/bin/switch-to-configuration boot
   # don't use kexec if system is virtualized, reboots are fast enough
   if ! systemd-detect-virt -q; then
diff --git a/modules/nixos/common/update.nix b/modules/nixos/common/update.nix
index d8e30fd..94f1fcb 100644
--- a/modules/nixos/common/update.nix
+++ b/modules/nixos/common/update.nix
@@ -16,7 +16,6 @@
       pkgs.coreutils
       pkgs.curl
       pkgs.kexec-tools
-      pkgs.nvd
     ];
     script = builtins.readFile ./update.bash;
   };