| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/bin/bash
- set -euo pipefail
- # --- CONFIG ---
- ICON="🐳"
- # Use your preferred match; consider "colima start" if "-f" isn't always present
- MATCH='colima start -f'
- # If brew is not in PATH for SwiftBar, hardcode it:
- BREW="/opt/homebrew/bin/brew"
- [[ -x "$BREW" ]] || BREW="/usr/local/bin/brew"
- is_running() {
- /bin/ps waux | /usr/bin/grep -F "$MATCH" | /usr/bin/grep -v grep >/dev/null 2>&1
- }
- pids() {
- /bin/ps waux | /usr/bin/grep -F "$MATCH" | /usr/bin/grep -v grep | /usr/bin/awk '{print $2}'
- }
- # --- Menu bar title ---
- if is_running; then
- echo "$ICON 🟢"
- else
- echo "$ICON 🔴"
- fi
- echo "---"
- # --- Actions ---
- if is_running; then
- echo "Stop (brew services) | bash='$0' param1=stop terminal=false refresh=true"
- echo "Restart | bash='$0' param1=restart terminal=false refresh=true"
- else
- echo "Start (brew services) | bash='$0' param1=start terminal=false refresh=true"
- fi
- echo "---"
- echo "Debug (brew services info) | bash='$0' param1=info terminal=true"
- echo "Show matching processes | bash='$0' param1=ps terminal=true"
- ACTION="${1:-}"
- case "$ACTION" in
- start)
- "$BREW" services start colima || true
- ;;
- stop)
- "$BREW" services stop colima || true
- ;;
- restart)
- "$BREW" services restart colima || true
- ;;
- info)
- echo "BREW: $BREW"
- echo
- "$BREW" services info colima 2>&1 || true
- echo
- echo "=== brew services list (filtered) ==="
- "$BREW" services list 2>&1 | /usr/bin/grep -i colima || true
- ;;
- ps)
- /bin/ps waux | /usr/bin/grep -F "$MATCH" | /usr/bin/grep -v grep || echo "(no matches)"
- ;;
- esac
|