diff options
Diffstat (limited to 'flake/scripts/remote.nix')
| -rw-r--r-- | flake/scripts/remote.nix | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/flake/scripts/remote.nix b/flake/scripts/remote.nix new file mode 100644 index 0000000..c96aa81 --- /dev/null +++ b/flake/scripts/remote.nix @@ -0,0 +1,134 @@ +{ + pkgs, +}: +[ + (pkgs.writeScriptBin "rbuild" '' + #!${pkgs.bash}/bin/bash + set -e + + # Check if host argument is provided + if [ -z "$1" ]; then + echo "❌ Error: Please specify a host" + echo "Usage: rbuild <hostname>" + echo "Example: rbuild rivendell" + exit 1 + fi + + HOST="$1" + echo "> Running nixos-rebuild build for $HOST..." + + ${pkgs.nixos-rebuild}/bin/nixos-rebuild build \ + --keep-going \ + --flake ".#$HOST" \ + --target-host "$HOST" \ + --fast \ + --use-remote-sudo \ + --use-substitutes + + echo "> nixos-rebuild build for $HOST was successful ✅" + '') + + (pkgs.writeScriptBin "rswitch" '' + #!${pkgs.bash}/bin/bash + set -e + + # Check if host argument is provided + if [ -z "$1" ]; then + echo "❌ Error: Please specify a host" + echo "Usage: rswitch <hostname>" + echo "Example: rswitch rivendell" + exit 1 + fi + + HOST="$1" + echo "> Running nixos-rebuild switch for $HOST..." + + ${pkgs.nixos-rebuild}/bin/nixos-rebuild switch \ + --keep-going \ + --flake ".#$HOST" \ + --target-host "$HOST" \ + --fast \ + --use-remote-sudo \ + --use-substitutes + + echo "> NixOS config was successfully applied to $HOST 🚀" + '') + + (pkgs.writeScriptBin "rdeploy" '' + #!${pkgs.bash}/bin/bash + set -e + + # Check if host argument is provided + if [ -z "$1" ]; then + echo "❌ Error: Please specify a host" + echo "Usage: rdeploy <hostname>" + echo "Example: rdeploy rivendell" + exit 1 + fi + + HOST="$1" + echo "> Deploying NixOS configuration to $HOST..." + echo "" + + # First build + echo "📦 Step 1/2: Building configuration..." + ${pkgs.nixos-rebuild}/bin/nixos-rebuild build \ + --keep-going \ + --flake ".#$HOST" \ + --target-host "$HOST" \ + --fast \ + --use-remote-sudo \ + --use-substitutes + + echo "" + echo "🔄 Step 2/2: Switching configuration..." + ${pkgs.nixos-rebuild}/bin/nixos-rebuild switch \ + --keep-going \ + --flake ".#$HOST" \ + --target-host "$HOST" \ + --fast \ + --use-remote-sudo \ + --use-substitutes + + echo "" + echo "> NixOS deployment to $HOST completed successfully! 🎉" + '') + + (pkgs.writeScriptBin "rhosts" '' + #!${pkgs.bash}/bin/bash + echo "> Available NixOS hosts in your flake:" + echo "" + + # This attempts to list nixosConfigurations from the flake + # You might need to adjust this based on your flake structure + nix flake show --json 2>/dev/null | \ + ${pkgs.jq}/bin/jq -r '.nixosConfigurations | keys[]' 2>/dev/null || \ + echo "Unable to list hosts automatically. Check your flake/hosts.nix" + '') + + (pkgs.writeScriptBin "rtest" '' + #!${pkgs.bash}/bin/bash + set -e + + # Check if host argument is provided + if [ -z "$1" ]; then + echo "❌ Error: Please specify a host" + echo "Usage: rtest <hostname>" + echo "Example: rtest rivendell" + exit 1 + fi + + HOST="$1" + echo "> Running dry-run build for $HOST..." + + ${pkgs.nixos-rebuild}/bin/nixos-rebuild dry-build \ + --keep-going \ + --flake ".#$HOST" \ + --target-host "$HOST" \ + --fast \ + --use-remote-sudo \ + --use-substitutes + + echo "> Dry-run build for $HOST completed ✅" + '') +] |
