From e1fcd15e71fccf951e81fa16ddd83efb34bc5605 Mon Sep 17 00:00:00 2001 From: sid Date: Sun, 26 Apr 2026 12:26:54 +0200 Subject: [PATCH] rebuild: add nom and dix. disable dirty git tree warning --- apps/rebuild/default.nix | 4 ++++ apps/rebuild/rebuild.sh | 40 ++++++++++++++++++++++++----------- modules/shared/common/nix.nix | 2 ++ 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/apps/rebuild/default.nix b/apps/rebuild/default.nix index 21242c7..72503a3 100644 --- a/apps/rebuild/default.nix +++ b/apps/rebuild/default.nix @@ -7,6 +7,8 @@ hostname, nix, nixos-rebuild-ng, + nix-output-monitor, + dix, ... }: @@ -26,5 +28,7 @@ writeShellApplication { hostname nix nixos-rebuild-ng + nix-output-monitor + dix ]; } diff --git a/apps/rebuild/rebuild.sh b/apps/rebuild/rebuild.sh index 752b9b7..ffe4a36 100755 --- a/apps/rebuild/rebuild.sh +++ b/apps/rebuild/rebuild.sh @@ -60,15 +60,24 @@ Rebuild_nixos() { fi [ -n "$TARGET_HOST" ] && CMD+=("--target-host" "$TARGET_HOST") - # Rebuild NixOS configuration - if [ "$ROLLBACK" = 0 ]; then - echo "Rebuilding NixOS configuration '$FLAKE'..." + # Build config first so we can diff it + local BUILD_CMD=("nixos-rebuild" "build" "--flake" "$FLAKE") + [ "$SHOW_TRACE" = 1 ] && BUILD_CMD+=("--show-trace") + [ -n "$BUILD_HOST" ] && BUILD_CMD+=("--build-host" "$BUILD_HOST") + if [ "$ROLLBACK" = 0 ]; then + echo "Building NixOS configuration '$FLAKE'..." + echo "Executing command: ${BUILD_CMD[*]}" + "${BUILD_CMD[@]}" |&nom || error "NixOS build failed" + echo "Package diff:" + dix /run/current-system result + rm result else echo "Rolling back to last NixOS generation..." fi - + echo "Switching to new NixOS configuration" + sudo -v echo "Executing command: ${CMD[*]}" - "${CMD[@]}" || error "NixOS rebuild failed" + "${CMD[@]}" |& nom || error "NixOS rebuild failed" echo "NixOS rebuild completed successfully." } @@ -91,15 +100,22 @@ Rebuild_home() { [ "$SHOW_TRACE" = 1 ] && CMD+=("--show-trace") fi - # Rebuild Home Manager configuration - if [ "$ROLLBACK" = 0 ]; then - echo "Rebuilding Home Manager configuration '$FLAKE'..." + # Build config first so we can diff it + if [ "$ROLLBACK" = 0 ]; then + local BUILD_CMD=("home-manager" "build" "--flake" "$FLAKE") + [ "$SHOW_TRACE" = 1 ] && BUILD_CMD+=("--show-trace") + echo "Building Home Manager configuration '$FLAKE'..." + echo "Executing command: ${BUILD_CMD[*]}" + "${BUILD_CMD[@]}" |& nom || error "Home Manager build failed" + echo "Package diff:" + dix /run/current-system result + rm result else echo "Rolling back to last Home Manager generation..." fi - + echo "Switching to new Home Manager configuration" echo "Executing command: ${CMD[*]}" - "${CMD[@]}" || error "Home Manager rebuild failed" + "${CMD[@]}" |& nom || error "Home Manager rebuild failed" echo "Home Manager rebuild completed successfully." } @@ -227,10 +243,10 @@ fi [ "$UPDATE" = 1 ] && Update case "$COMMAND" in - nixos) + nixos|os) Rebuild_nixos ;; - home) + home|hm) Rebuild_home ;; all) diff --git a/modules/shared/common/nix.nix b/modules/shared/common/nix.nix index 2d0daa3..4d8e217 100644 --- a/modules/shared/common/nix.nix +++ b/modules/shared/common/nix.nix @@ -32,6 +32,8 @@ in }; }; + nix.settings.warn-dirty = mkDefault false; + # fallback quickly if substituters are not available. nix.settings.connect-timeout = mkDefault 5; nix.settings.fallback = true;