diff --git a/pkgs/nixfiles/nixfiles-trigger-system-upgrade.nix b/pkgs/nixfiles/nixfiles-trigger-system-upgrade.nix new file mode 100644 index 0000000..2c980d9 --- /dev/null +++ b/pkgs/nixfiles/nixfiles-trigger-system-upgrade.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: + +pkgs.writeShellApplication { + name = "nixfiles-trigger-system-upgrade"; + text = builtins.readFile ./nixfiles-trigger-system-upgrade.sh; + runtimeInputs = with pkgs; [ + pssh + ]; +} + diff --git a/pkgs/nixfiles/nixfiles-trigger-system-upgrade.sh b/pkgs/nixfiles/nixfiles-trigger-system-upgrade.sh new file mode 100755 index 0000000..a91d7be --- /dev/null +++ b/pkgs/nixfiles/nixfiles-trigger-system-upgrade.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +TARGETS="$(nix --extra-experimental-features "nix-command flakes" eval --raw ".#nixosConfigurations" --apply "nixosConfigurations: builtins.concatStringsSep \"\\n\" (builtins.attrValues (builtins.mapAttrs (name: host: host.config.networking.fqdn) nixosConfigurations))")" + +pssh -h <(echo "${TARGETS}") -i -- sudo systemctl start clerie-system-auto-upgrade.service --no-block diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix index 5bb0aca..a6b0cd9 100644 --- a/pkgs/overlay.nix +++ b/pkgs/overlay.nix @@ -22,6 +22,7 @@ final: prev: { nixfiles-auto-install = final.callPackage ./nixfiles/nixfiles-auto-install.nix {}; nixfiles-generate-config = final.callPackage ./nixfiles/nixfiles-generate-config.nix {}; nixfiles-generate-backup-secrets = final.callPackage ./nixfiles/nixfiles-generate-backup-secrets.nix {}; + nixfiles-trigger-system-upgrade = final.callPackage ./nixfiles/nixfiles-trigger-system-upgrade.nix {}; nixfiles-update-ssh-host-keys = final.callPackage ./nixfiles/nixfiles-update-ssh-host-keys.nix {}; pipewire-all-bluetooth = final.callPackage ./pipewire-all-bluetooth {}; print-afra = final.callPackage ./print-afra {};