-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathentrypoint.sh
52 lines (37 loc) · 1.26 KB
/
entrypoint.sh
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
set -e
echo "Run init scripts"
for f in ./init/*.sh; do
sh ./initexec.sh "$f"
done
echo "Generate mod folder and modpack"
mkdir -p "./_mods/ModPacks/"
cp ./mods/*.tmod ./_mods/
mods=$(find ./_mods/ -name '*.tmod' -print | sed 's/.*\//\"/' | sed 's/\.tmod/",/')
echo -e "[\n$mods\n]" > ./_mods/ModPacks/generated.json
echo "Generate config and args"
cp -f ./config/serverconfig.txt ./serverconfig.txt
function prop {
grep "^${1}=" ./serverconfig.txt | cut -d'=' -f2 | tr -d '\n' | tr -d '\r'
}
disableannouncementbox=$(prop "disableannouncementbox")
announcementboxrange=$(prop "announcementboxrange")
cat <<EOF >> ./serverconfig.txt
worldpath=./worlds/
banlist=./config/banlist.txt
modpath=./_mods/
modpack=generated
EOF
worldname=$(prop "worldname")
world=$(find ./worlds/ -name '*.wld' -print -quit)
echo -e "world=${world:-"./worlds/$worldname.wld"}\n" >> ./serverconfig.txt
# Generate arguments
args="-config ./serverconfig.txt"
if [ "$disableannouncementbox" = "1" ]; then
args="$args -disableannouncementbox"
fi
if [ -n "$announcementboxrange" ]; then
args="$args -announcementboxrange $announcementboxrange"
fi
echo "Starting server"
export SERVER_EXECUTABLE="mono"
exec ./TerrariaServerWrapper --server --gc=sgen -O=all ./tModLoaderServer.exe $args