Files
laravel-starter-kit/docker/bin/zail

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