-
Notifications
You must be signed in to change notification settings - Fork 0
/
orgional-init.sh
126 lines (106 loc) · 3.98 KB
/
orgional-init.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/bash
ARMASVRPATH=/arma3
ARMAAPPID=107410
RCONPASSWORD=${RCONPASSWORD:-changemen0w}
STEAM_USERNAME=${STEAM_USERNAME:-anonymous}
STEAM_PASSWORD=${STEAM_PASSWORD:-}
#:: Epoch Workshop IDs: Experimental = 455221958 Normal = 421839251
mods[421839251]='@epoch'
servermods[601772725]='@epochhive'
#make redis config save server database to exposed /data folder to persist data on host
if [ -d "/data" ]; then
sed -i 's@dir /var/lib/redis@dir /data@g' /etc/redis/redis.conf
fi
#start redis
redis-server --daemonize yes
cd /root
# install steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -zxvf steamcmd_linux.tar.gz
rm -f steamcmd_linux.tar.gz
cd ..
# build mod list
MODLIST=""
ARMASERVERMODS=""
for i in "${!servermods[@]}"
do
MODLIST+="+workshop_download_item $ARMAAPPID $i "
ARMASERVERMODS+="${servermods[$i]};"
done
ARMAMODS=""
for i in "${!mods[@]}"
do
MODLIST+="+workshop_download_item $ARMAAPPID $i "
ARMAMODS+="${mods[$i]};"
done
# install arma 3
/root/steamcmd.sh +login $STEAM_USERNAME $STEAM_PASSWORD +force_install_dir /arma3 "+app_update 233780" $MODLIST validate +quit
# move into arma3 folder
cd $ARMASVRPATH
# try to support 64 bit...
FILE=arma3server_x64
ARCH="_x64"
if [ ! -f "$FILE" ]; then
FILE=arma3server
ARCH=""
fi
#link common folders
ln -s $ARMASVRPATH"/mpmissions" $ARMASVRPATH"/MPMissions"
ln -s $ARMASVRPATH"/keys" $ARMASVRPATH"/Keys"
# perform install of mods
for i in "${!mods[@]}"
do
MODFILE="/arma3/steamapps/workshop/content/107410/$i"
if [ -d "$MODFILE" ]; then
# convert to mod to lowercase
cd $MODFILE
ls | while read upName; do loName=`echo "${upName}" | tr '[:upper:]' '[:lower:]'`; mv "$upName" "$loName"; done
# install client mods
ln -s $MODFILE $ARMASVRPATH"/"${mods[$i]}
# copy latest key to server
cp -a -v $ARMASVRPATH"/"${mods[$i]}"/keys/." $ARMASVRPATH"/keys"
else
echo "ERROR: Mod files not found for $i"
fi
done
for i in "${!servermods[@]}"
do
MODFILE="/arma3/steamapps/workshop/content/107410/$i"
if [ -d "$MODFILE" ]; then
# convert to mod to lowercase
cd $MODFILE
ls | while read upName; do loName=`echo "${upName}" | tr '[:upper:]' '[:lower:]'`; mv "$upName" "$loName"; done
#install server mods
ln -s $MODFILE $ARMASVRPATH"/"${servermods[$i]}
#special extra install for 558243173
if [ "$i" -eq "601772725" ] || [ "$i" -eq "558243173" ]; then
cp $ARMASVRPATH"/"${servermods[$i]}"/epochah-example.hpp" $ARMASVRPATH"/"${servermods[$i]}"/epochah.hpp"
cp $ARMASVRPATH"/"${servermods[$i]}"/epochconfig-example.hpp" $ARMASVRPATH"/"${servermods[$i]}"/epochconfig.hpp"
cp $ARMASVRPATH"/"${servermods[$i]}"/epochserver-example.ini" $ARMASVRPATH"/"${servermods[$i]}"/epochserver.ini"
#sed -i "s@Password = foobared@Password = $REDISAUTHPASS@g" $ARMASVRPATH"/${servermods[$i]}/EpochServer.ini"
#:: copy config profile and battleye files to live
# mkdir -p $ARMASVRPATH"/sc"
cp -a -v $ARMASVRPATH"/"${servermods[$i]}"/sc/." $ARMASVRPATH"/sc"
cp $ARMASVRPATH"/sc/server-example.cfg" $ARMASVRPATH"/sc/server.cfg"
cp $ARMASVRPATH"/sc/basic-example.cfg" $ARMASVRPATH"/sc/basic.cfg"
cp $ARMASVRPATH"/sc/battleye/example-beserver"$ARCH".cfg" $ARMASVRPATH"/sc/battleye/beserver"$ARCH".cfg"
# setup rcon
# RConPassword changemen0w
sed -i "s@RConPassword changemen0w@RConPassword $RCONPASSWORD@g" $ARMASVRPATH"/sc/battleye/beserver"$ARCH".cfg"
sed -i "s@Password = changeme@Password = $RCONPASSWORD@g" $ARMASVRPATH"/"${servermods[$i]}"/epochserver.ini"
#:: update mission files
#mkdir -p $ARMASVRPATH"/mpmissions"
cp -a -v $ARMASVRPATH"/"${servermods[$i]}"/mpmissions/." $ARMASVRPATH"/mpmissions"
fi
else
echo "ERROR: Mod files not found for $i"
fi
done
eval ${PRESCRIPT}
# move back into arma3 folder
cd $ARMASVRPATH
if [ -f "$FILE" ]; then
./$FILE -port=2302 -profiles=/sc -mod="$ARMAMODS" -serverMod="$ARMASERVERMODS" -config="/arma3/sc/server.cfg" -cfg="/arma3/sc/basic.cfg" -name=SC -world=empty -autoinit
else
echo "Cannot find $FILE"
fi