#!/usr/bin/env bash set -euo pipefail # deploy.sh — Deploy inference scripts to remote servers # # Usage: ./deploy.sh [TARGET] [SCRIPT] # TARGET: dankserver, dankclaw, or all # SCRIPT: Script name to deploy (default: all scripts in scripts/) TARGET="${1:-all}" SCRIPT="${2:-}" # Remote configuration declare -A REMOTE_HOSTS REMOTE_HOSTS=( ["dankserver"]="dank@dankserver" ["dankclaw"]="dank@dankclaw" ) declare -A REMOTE_DIRS REMOTE_DIRS=( ["dankserver"]="/home/dank/vllm" ["dankclaw"]="/home/dank/vllm" ) declare -A REMOTE_SERVICES REMOTE_SERVICES=( ["dankserver"]="vllm-awq-qwen36.service" ["dankclaw"]="vllm-thinkingcap.service" ) deploy_to() { local target="$1" local remote="${REMOTE_HOSTS[$target]}" local remote_dir="${REMOTE_DIRS[$target]}" local service="${REMOTE_SERVICES[$target]}" echo "=== Deploying to $target ===" # Create remote directory if it doesn't exist sshpass -p 'Assface.3241' ssh "$remote" "mkdir -p $remote_dir" # Deploy scripts if [ -n "$SCRIPT" ]; then if [ -f "scripts/$SCRIPT" ]; then echo " Deploying scripts/$SCRIPT..." sshpass -p 'Assface.3241' scp "scripts/$SCRIPT" "$remote:$remote_dir/$SCRIPT" else echo " ERROR: scripts/$SCRIPT not found" return 1 fi else for script in scripts/*.sh; do if [ -f "$script" ]; then local name=$(basename "$script") echo " Deploying $name..." sshpass -p 'Assface.3241' scp "$script" "$remote:$remote_dir/$name" fi done fi # Make scripts executable if [ -n "$SCRIPT" ]; then sshpass -p 'Assface.3241' ssh "$remote" "chmod +x $remote_dir/$SCRIPT" else sshpass -p 'Assface.3241' ssh "$remote" "chmod +x $remote_dir/*.sh" fi # Restart service if it exists echo " Restarting $service..." sshpass -p 'Assface.3241' ssh "$remote" "echo 'Assface.3241' | sudo -S systemctl restart $service 2>/dev/null || echo 'Service $service not found or failed'" echo " Deploy to $target complete" echo "" } case "$TARGET" in dankserver|dankclaw) deploy_to "$TARGET" ;; all) for target in "${!REMOTE_HOSTS[@]}"; do deploy_to "$target" done ;; *) echo "ERROR: Unknown target $TARGET" echo "Usage: $0 [dankserver|dankclaw|all] [script]" exit 1 ;; esac echo "=== Deployment complete ==="