mirror of
https://github.com/tomasriveral/nixos.git
synced 2026-08-12 10:30:44 +02:00
42 lines
1.1 KiB
Nix
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
|
|
'';
|
|
}
|