52 lines
990 B
Bash
Executable File
52 lines
990 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# scripts/stop-osvauco-dev-vm.sh — Safely stop the OSVauco development VM
|
|
# Use this instead of manual delete commands.
|
|
|
|
set -euo pipefail
|
|
|
|
PROJECT_ID=${PROJECT_ID:-propane-will-491900-m5}
|
|
ZONE=${ZONE:-us-central1-b}
|
|
VM_NAME=${VM_NAME:-osvauco-dev-vm}
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
Usage: $0 [--project <project>] [--zone <zone>] [--vm-name <vm-name>]
|
|
|
|
Stops the specified Compute Engine VM safely using gcloud.
|
|
EOF
|
|
}
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--project)
|
|
PROJECT_ID="$2"
|
|
shift 2
|
|
;;
|
|
--zone)
|
|
ZONE="$2"
|
|
shift 2
|
|
;;
|
|
--vm-name)
|
|
VM_NAME="$2"
|
|
shift 2
|
|
;;
|
|
--help|-h)
|
|
usage
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Unknown option: $1"
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
echo "Stopping VM ${VM_NAME} in project ${PROJECT_ID}, zone ${ZONE}..."
|
|
gcloud compute instances stop "${VM_NAME}" \
|
|
--project="${PROJECT_ID}" \
|
|
--zone="${ZONE}" \
|
|
--quiet
|
|
|
|
echo "✓ VM stopped: ${VM_NAME}"
|