{ 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 " 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 " 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 " 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 " 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 ✅" '') ]