-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·46 lines (37 loc) · 1.16 KB
/
setup.sh
File metadata and controls
executable file
·46 lines (37 loc) · 1.16 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
#!/bin/bash
set -e
find_port() {
local port=$1
while :; do
if ! nc -z localhost "$port" 2>/dev/null; then
echo "$port"
return 0
fi
((port++))
done
}
restore_compose() {
sed -i '' "s/- \"$PORT:5173\"/- \"5173:5173\"/" docker-compose.yml 2>/dev/null || \
sed -i "s/- \"$PORT:5173\"/- \"5173:5173\"/" docker-compose.yml
}
if nc -z localhost 5173 2>/dev/null; then
PORT=$(find_port 5174)
echo "Port 5173 in use, using port $PORT"
else
PORT=5173
fi
# Use temp file for cross-platform sed
cp docker-compose.yml docker-compose.yml.bak
trap 'mv docker-compose.yml.bak docker-compose.yml' EXIT
# macOS compatible sed (add empty string after -i)
sed -i '' "s/- \"5173:5173\"/- \"$PORT:5173\"/" docker-compose.yml 2>/dev/null || \
sed -i "s/- \"5173:5173\"/- \"$PORT:5173\"/" docker-compose.yml
if ! docker compose up -d; then
echo "Docker compose failed, restoring original docker-compose.yml"
mv docker-compose.yml.bak docker-compose.yml
exit 1
fi
# Restore original (remove trap first)
trap - EXIT
mv docker-compose.yml.bak docker-compose.yml
echo "Docs available at http://localhost:$PORT"