- Introduced a new script, `kill_modal.sh`, to facilitate stopping running Modal apps, including the ability to stop all apps or specific swe-rex sandboxes. - Enhanced user experience with clear usage instructions and feedback during the stopping process. - Improved error handling to ensure smooth execution even if some apps fail to stop.
35 lines
1.0 KiB
Bash
Executable File
35 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Kill all running Modal apps (sandboxes, deployments, etc.)
|
|
#
|
|
# Usage:
|
|
# bash scripts/kill_modal.sh # Stop swe-rex (the sandbox app)
|
|
# bash scripts/kill_modal.sh --all # Stop ALL Modal apps
|
|
|
|
set -uo pipefail
|
|
|
|
echo "Fetching Modal app list..."
|
|
APP_LIST=$(modal app list 2>/dev/null)
|
|
|
|
if [[ "${1:-}" == "--all" ]]; then
|
|
echo "Stopping ALL Modal apps..."
|
|
echo "$APP_LIST" | grep -oE 'ap-[A-Za-z0-9]+' | sort -u | while read app_id; do
|
|
echo " Stopping $app_id"
|
|
modal app stop "$app_id" 2>/dev/null || true
|
|
done
|
|
else
|
|
echo "Stopping swe-rex sandboxes..."
|
|
APPS=$(echo "$APP_LIST" | grep 'swe-rex' | grep -oE 'ap-[A-Za-z0-9]+' || true)
|
|
if [[ -z "$APPS" ]]; then
|
|
echo " No swe-rex apps found."
|
|
else
|
|
echo "$APPS" | while read app_id; do
|
|
echo " Stopping $app_id"
|
|
modal app stop "$app_id" 2>/dev/null || true
|
|
done
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo "Current swe-rex status:"
|
|
modal app list 2>/dev/null | grep -E 'State|swe-rex' || echo " (none)"
|