Files
nixos/hostsModules/laptop/scripts/autoUpdate.nix
T

42 lines
1.1 KiB
Nix

{
pkgs,
...
}:
pkgs.writeShellApplication {
name = "custom-autoupdate";
runtimeInputs = with pkgs; [
git
nixos-rebuild
matrix-commander-rs
libnotify
];
text = ''
set -e
FLAKE_DIR="/home/tomasr/nixos"
FLAKE="$FLAKE_DIR#laptop"
TIME=$(date -u +"%Y-%m-%dT%H-%M-%SZ")
git -C "$FLAKE_DIR" pull
git -C "$FLAKE_DIR" tag "pre-autoupdate-$TIME"
nix flake update --flake "$FLAKE_DIR"
if sudo nixos-rebuild switch --flake "$FLAKE"; then
git -C "$FLAKE_DIR" restore .
git -C "$FLAKE_DIR" add flake.lock
git -C "$FLAKE_DIR" commit -m "flake: autoupdate $TIME"
git -C "$FLAKE_DIR" push
notify-send "Flake autoupdate" "Rebuild OK"
matrix-commander-rs -m "Flake rebuild succesfull.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" --html -r "\!7j-78_02dHROeLj4Ns8F12eo4IiZGv4zNsQ_1-WlyIU"
else
notify-send -u critical "Flake autoupdate" "FAILED"
matrix-commander-rs -m "Flake rebuild FAILED"
git reset --hard "pre-autoupdate-$TIME"
fi
'';
}