Repository navigation
Expand file tree
/
Copy pathrun.sh
More file actions
executable file
·57 lines (51 loc) · 1.52 KB
/
Copy pathrun.sh
File metadata and controls
executable file
·57 lines (51 loc) · 1.52 KB
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
#!/bin/bash
# WolfScale Run Script
# Usage: ./run.sh [mode] [options]
# Modes: start, proxy
# Options: --bootstrap (for start mode), --listen ADDRESS (for proxy mode)
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BINARY="$SCRIPT_DIR/target/release/wolfscale"
CONFIG="$SCRIPT_DIR/wolfscale.toml"
# Build if binary doesn't exist
if [ ! -f "$BINARY" ]; then
echo "Building WolfScale..."
cd "$SCRIPT_DIR"
cargo build --release
fi
# Check for config file
if [ ! -f "$CONFIG" ]; then
echo "Error: Configuration file not found at $CONFIG"
echo "Run: $BINARY init --output $CONFIG"
exit 1
fi
MODE="${1:-start}"
case "$MODE" in
start)
shift || true
echo "Starting WolfScale node..."
"$BINARY" --config "$CONFIG" start "$@"
;;
proxy)
shift || true
LISTEN="${1:---listen 0.0.0.0:8007}"
echo "Starting WolfScale MySQL Proxy..."
"$BINARY" --config "$CONFIG" proxy $LISTEN
;;
status)
"$BINARY" --config "$CONFIG" status
;;
info)
"$BINARY" --config "$CONFIG" info
;;
*)
echo "Usage: $0 {start|proxy|status|info} [options]"
echo ""
echo "Modes:"
echo " start [--bootstrap] Start as cluster node (use --bootstrap for first node)"
echo " proxy [--listen ADDR] Start MySQL proxy (default: 0.0.0.0:8007)"
echo " status Check cluster status"
echo " info Show node configuration"
exit 1
;;
esac