-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-entrypoint
executable file
·55 lines (46 loc) · 1.63 KB
/
docker-entrypoint
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
#!/bin/bash
PID=$!
echo "PID:$PID"
CONFIG_PATH="/etc/Terraria"
CONFIG_FILE="config.cfg"
function prepare-config {
cp /etc/Terraria/config_template.cfg "$CONFIG_PATH/$CONFIG_FILE"
echo -e "Writing config:\nWORLD=$WORLD\nMAX_PLAYERS=$MAX_PLAYERS\nPORT=$PORT\nMOTD=$MOTD\nSECURE=$SECURE\nLANGUAGE=$LANGUAGE\n"
PASSWORD=$(cat "$CONFIG_PATH/$PASSWORD_FILE")
sed -i "s/{{WORLD}}/$WORLD/g" "$CONFIG_PATH/$CONFIG_FILE"
sed -i "s/{{MAX_PLAYERS}}/$MAX_PLAYERS/g" "$CONFIG_PATH/$CONFIG_FILE"
sed -i "s/{{PORT}}/$PORT/g" "$CONFIG_PATH/$CONFIG_FILE"
sed -i "s/{{PASSWORD}}/$PASSWORD/g" "$CONFIG_PATH/$CONFIG_FILE"
sed -i "s/{{MOTD}}/$MOTD/g" "$CONFIG_PATH/$CONFIG_FILE"
sed -i "s/{{SECURE}}/$SECURE/g" "$CONFIG_PATH/$CONFIG_FILE"
sed -i "s/{{LANGUAGE}}/$LANGUAGE/g" "$CONFIG_PATH/$CONFIG_FILE"
}
function start-server {
echo "Starting server..."
tmux new -s terraria -d "/TerrariaServer/TerrariaServer.bin.x86_64 -config $CONFIG_PATH/$CONFIG_FILE $START_PARAMETER"
echo "Server up und running"
}
function save-server {
echo "Check if server is running"
tmux ls > /dev/null 2>&1
if [[ $(echo $?) == "0" ]]; then
echo "Save server"
tmux set-buffer "save" \; paste-buffer \; send-keys C-m
else
echo "Server stoppped"
fi
}
function stop-server {
# You won't see this in the terminal. Use `docker logs <container_id>` instead.
echo "Stop server"
tmux set-buffer "exit" \; paste-buffer \; send-keys C-m
rm $CONFIG_PATH/$CONFIG_FILE
}
trap "stop-server" 1 2 3 6 15
prepare-config
start-server
while :
do
sleep $AUTOSAVE_INTERVAL & wait $PID
save-server
done