64 lines
1.1 KiB
Bash
Executable File
64 lines
1.1 KiB
Bash
Executable File
#!/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|<command>...]"
|
|
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
|