mirror of
https://github.com/vercel-labs/portless.git
synced 2026-09-14 16:37:59 +08:00
44 lines
1.4 KiB
Bash
Executable File
44 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
INSTANCE_FILE="$SCRIPT_DIR/.instance"
|
|
|
|
if [[ ! -f "$INSTANCE_FILE" ]]; then
|
|
echo "Error: No instance provisioned. Run ./scripts/windows-debug/provision.sh first."
|
|
exit 1
|
|
fi
|
|
|
|
source "$INSTANCE_FILE"
|
|
export AWS_DEFAULT_REGION="$REGION"
|
|
|
|
STATE=$(aws ec2 describe-instances \
|
|
--instance-ids "$INSTANCE_ID" \
|
|
--query "Reservations[0].Instances[0].State.Name" --output text)
|
|
|
|
if [[ "$STATE" == "running" ]]; then
|
|
echo "Instance $INSTANCE_ID is already running."
|
|
else
|
|
echo "Starting instance $INSTANCE_ID..."
|
|
aws ec2 start-instances --instance-ids "$INSTANCE_ID" --no-cli-pager
|
|
echo "Waiting for running state..."
|
|
aws ec2 wait instance-running --instance-ids "$INSTANCE_ID"
|
|
echo "Instance is running."
|
|
fi
|
|
|
|
echo "Waiting for SSM agent connectivity..."
|
|
for i in $(seq 1 30); do
|
|
SSM_STATUS=$(aws ssm describe-instance-information \
|
|
--filters "Key=InstanceIds,Values=$INSTANCE_ID" \
|
|
--query "InstanceInformationList[0].PingStatus" --output text 2>/dev/null || echo "None")
|
|
if [[ "$SSM_STATUS" == "Online" ]]; then
|
|
echo "SSM agent is online. Ready for commands."
|
|
echo " ./scripts/windows-debug/run.sh \"your-command-here\""
|
|
exit 0
|
|
fi
|
|
sleep 10
|
|
done
|
|
|
|
echo "Warning: SSM agent not online after 5 minutes. The instance may still be booting."
|
|
echo "Try again in a minute: ./scripts/windows-debug/run.sh \"hostname\""
|