#!/usr/bin/env bash set -e # Basis-Verzeichnis des Projekts ermitteln BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" # Unsere einzige Compose-Datei COMPOSE_FILE="$BASE_DIR/compose.yaml" # Standard-Service für Befehle wie "artisan", "npm", etc. SERVICE="${ZAIL_SERVICE:-workspace}" dc() { docker compose -f "$COMPOSE_FILE" "$@" } if [[ "$#" -lt 1 ]]; then echo "Usage: zail [up|down|stop|restart|ps|logs|bash|artisan|composer|npm|yarn|pnpm|...]" exit 1 fi CMD="$1" shift || true case "$CMD" in up) dc up "$@" ;; down) dc down "$@" ;; stop) # Entspricht in etwa "sail stop" dc stop "$@" ;; restart) dc down dc up "$@" ;; ps) dc ps "$@" ;; logs) # Logs aller Services folgen dc logs -f "$@" ;; bash|shell|sh) dc exec "$SERVICE" bash ;; artisan) dc exec "$SERVICE" php artisan "$@" ;; composer) dc exec "$SERVICE" composer "$@" ;; npm|yarn|pnpm) dc exec "$SERVICE" "$CMD" "$@" ;; *) # Fallback: beliebigen Befehl im Standard-Service ausführen dc exec "$SERVICE" "$CMD" "$@" ;; esac