pull-update: improvement
All checks were successful
Build / build (push) Successful in 3m0s

This commit is contained in:
2026-04-16 17:43:35 -04:00
parent 72d37f57ac
commit 5997c886f6

View File

@@ -3,7 +3,15 @@
# records the output store path at /deploy/<hostname>. On boot this
# service fetches that path, pulls the closure from the binary cache,
# sets it as the boot profile, and reboots into it.
{ pkgs, hostname, lib, ... }:
#
# Runs before the display manager so the user sees progress on the
# console instead of staring at a frozen Steam loading screen.
{
pkgs,
hostname,
lib,
...
}:
let
deploy-url = "https://nix-cache.sigkill.computer/deploy/${hostname}";
@@ -43,14 +51,19 @@ let
exit 0
fi
echo "Update available: $CURRENT -> $STORE_PATH"
echo ""
echo "====================================="
echo " System update available. Installing."
echo "====================================="
echo ""
nix-store -r "$STORE_PATH" || { echo "Failed to fetch closure"; exit 1; }
nix-env -p /nix/var/nix/profiles/system --set "$STORE_PATH" || { echo "Failed to set profile"; exit 1; }
"$STORE_PATH/bin/switch-to-configuration" boot || { echo "Failed to install boot entry"; exit 1; }
wall "System update installed. Rebooting in 10 seconds..."
sleep 10
echo ""
echo "Update installed. Rebooting..."
echo ""
systemctl reboot
'';
};
@@ -60,11 +73,15 @@ in
description = "Pull latest NixOS configuration from binary cache";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
# run before the display manager so the message is visible on the console
before = [ "display-manager.service" ];
wantedBy = [ "multi-user.target" ];
restartIfChanged = false;
serviceConfig = {
Type = "oneshot";
ExecStart = lib.getExe pull-update;
StandardOutput = "journal+console";
StandardError = "journal+console";
};
};
}