summaryrefslogtreecommitdiff
path: root/x
blob: 78cbe043eff6414bae7d878b696d1c76f539f564 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env bash

set -e

DOCKER_COMPOSE="docker compose -f docker/compose.yaml"

help() {
    cat <<EOF
Usage: ./x <command> [options]

Commands:
    start           Build with gradlew and start docker compose
    restart         Restart s1, s2 and velocity containers
    stop            Stop docker compose
    clean           Stop docker compose and remove volumes
    rcon [server]   Open rcon-cli for server container (default: s1)
                    Available servers: s1, s2
    logs [server]   Show server container logs (default: s1)
                    Available servers: s1, s2
    vlogs           Show velocity container logs
    help            Show this help message

EOF
}

case "${1:-}" in
    start)
        ./gradlew :platform-paper:clean :platform-paper:shadowJar :platform-velocity:clean :platform-velocity:shadowJar
        $DOCKER_COMPOSE up
        ;;
    restart)
        $DOCKER_COMPOSE restart s1 s2 velocity
        ;;
    stop)
        $DOCKER_COMPOSE down
        ;;
    clean)
        $DOCKER_COMPOSE down -v
        ;;
    rcon)
        SERVER="${2:-s1}"
        if [[ "$SERVER" != "s1" && "$SERVER" != "s2" ]]; then
            echo "Error: Invalid server '$SERVER'. Available servers: s1, s2"
            exit 1
        fi
        $DOCKER_COMPOSE exec $SERVER rcon-cli
        ;;
    logs)
        SERVER="${2:-s1}"
        if [[ "$SERVER" != "s1" && "$SERVER" != "s2" ]]; then
            echo "Error: Invalid server '$SERVER'. Available servers: s1, s2"
            exit 1
        fi
        $DOCKER_COMPOSE logs -f $SERVER
        ;;
    vlogs)
        $DOCKER_COMPOSE logs -f velocity
        ;;
    help|"")
        help
        ;;
    *)
        echo "Unknown command: $1"
        echo ""
        help
        exit 1
        ;;
esac