source: bootstrapper/bootstrap.sh@ 257

Last change on this file since 257 was 257, checked in by alloc, 9 years ago

Scripts: Removed Steam login

File size: 6.4 KB
RevLine 
[1]1#!/bin/bash
[229]2VERSION=6
[1]3
[30]4if [ `id -u` -ne 0 ]; then
5 echo "This script has to be run as root!"
6 exit 1
7fi
8
9
[1]10ADDCRONJOBS=0
11RUNINSTALL=0
[32]12INSTALLOPTIONALDEPS=0
[1]13
[44]14DEPENDENCIES="gcc wget rsync xmlstarlet"
[1]15
16if [ -n "$(command -v apt-get)" ]; then
17 ISDEBIAN=1
18else
19 ISDEBIAN=0
20fi
21
22if [ $(uname -m) == 'x86_64' ]; then
23 IS64BIT=1
24else
25 IS64BIT=0
26fi
27
[30]28if [ $IS64BIT -eq 1 ]; then
[35]29 DEPENDENCIES="$DEPENDENCIES lib32gcc1"
[1]30fi
31
32showHelp() {
[48]33 echo "7dtd bootstrapper version $VERSION"
34 echo
[30]35 echo "Usage: ./bootstrap.sh [-h] [-c] -i"
[1]36 echo "Parameters:"
37 echo " -h Print this help screen and exit"
[30]38# echo " -o Install optional dependencies ($OPTDEPENDENCIES)"
[31]39 echo " -c Enable cron job for automatic backups"
[1]40 echo " -i Required to actually start the installation"
41}
42
43intro() {
44 echo
45 echo "7DtD Linux dedicated server bootstrapper"
46 echo
47 echo "This will install a 7DtD server according to the information"
48 echo "given on:"
[30]49 echo " https://7dtd.illy.bz/"
[1]50 echo
51 read -p "Press enter to continue"
52 echo -e "\n=============================================================\n\n"
53}
54
55nonDebianWarning() {
[30]56 if [ $ISDEBIAN -eq 0 ]; then
[1]57 echo "NOTE: It seems like this system is not based on Debian."
58 echo "Although installation of the scripts and SteamCMD/7dtd"
59 echo "will work the installed management scripts will probably"
[30]60 echo "fail because of missing dependencies. Make sure you check"
61 echo "the website regarding the prerequisites"
62 echo "(https://7dtd.illy.bz)."
[35]63 echo
[1]64 echo "Do you want to continue anyway?"
65 select yn in "Yes" "No"; do
66 case $yn in
67 Yes)
68 echo "Continuing..."
69 break;;
70 No)
71 echo "Aborting."
72 exit 0
73 ;;
74 esac
75 done
76 echo -e "\n=============================================================\n\n"
77 fi
78}
79
80installAptDeps() {
81 echo -e "Installing dependencies\n"
[30]82 if [ $IS64BIT -eq 1 ]; then
[1]83 dpkg --add-architecture i386
84 fi
85 apt-get update
86 apt-get install $DEPENDENCIES
87 echo -e "\n=============================================================\n\n"
88}
89
90installOptionalDeps() {
91 echo -e "Installing optional dependencies\n"
92 apt-get install $OPTDEPENDENCIES
93 echo -e "\n=============================================================\n\n"
94}
95
[32]96checkSetupDeps() {
[40]97 for DEP in gcc wget tr rsync xmlstarlet; do
[41]98 which $DEP > /dev/null 2>&1
[39]99 if [ $? -ne 0 ]; then
100 echo "\"$DEP\" not installed. Please install it and run this script again."
101 exit 1
102 fi
103 done
[35]104
[42]105 ldconfig -p | grep ld-linux | grep "(ELF)" > /dev/null
106 if [ $? -ne 0 ]; then
107 echo "WARNING: There probably is no 32 Bit version of ld-linux installed."
108 echo "This is most probably part of a 32 Bit version of a glibc-package."
[43]109 echo
110 echo "It will result in errors trying to run SteamCMD if this library is not available!."
[42]111 echo "Do you want to continue anyway?"
112 select yn in "Yes" "No"; do
113 case $yn in
114 Yes)
115 break;;
116 No)
117 echo "Aborting."
118 exit 1
119 ;;
120 esac
121 done
122 fi
123
[35]124 ldconfig -p | grep gcc | grep -v 64 > /dev/null
125 if [ $? -ne 0 ]; then
[42]126 echo "WARNING: There probably is no 32 Bit version of libgcc installed."
[43]127 echo
128 echo "It will result in errors trying to run SteamCMD if this library is not available!"
[42]129 echo "Do you want to continue anyway?"
[35]130 select yn in "Yes" "No"; do
131 case $yn in
132 Yes)
133 break;;
134 No)
135 echo "Aborting."
[38]136 exit 1
[35]137 ;;
138 esac
139 done
140 fi
[32]141}
142
[1]143setupUser() {
144 echo -e "Setting up user and group \"sdtd\"\n"
145 useradd -d /home/sdtd -m -r -s /bin/bash -U sdtd
146 echo -e "\n=============================================================\n\n"
147}
148
149installManagementScripts() {
150 echo -e "Downloading and installing management scripts\n"
151 wget -nv http://illy.bz/fi/7dtd/management_scripts.tar.gz -O /tmp/management_scripts.tar.gz
[51]152 tar --touch --no-overwrite-dir -xzf /tmp/management_scripts.tar.gz -C /
[30]153
154 chown root.root /etc/7dtd.conf
155 chmod 0600 /etc/7dtd.conf
156
157 chown sdtd.sdtd /home/sdtd -R
158
159 chown root.root /etc/init.d/7dtd.sh
160 chown root.root /etc/bash_completion.d/7dtd
[65]161 chown root.root /etc/cron.d/7dtd-backup
[30]162 chown root.root /usr/local/bin/7dtd.sh
163 chown root.root /usr/local/lib/7dtd -R
164 chmod 0755 /etc/init.d/7dtd.sh
165 chmod 0755 /etc/bash_completion.d/7dtd
[65]166 chmod 0755 /etc/cron.d/7dtd-backup
[30]167 chmod 0755 /usr/local/bin/7dtd.sh
168 chmod 0755 /usr/local/lib/7dtd -R
169
170 if [ $ISDEBIAN -eq 1 ]; then
[1]171 update-rc.d 7dtd.sh defaults
[32]172 fi
173
174 echo
175 echo "Compiling start-stop-daemon"
176 cd /usr/local/lib/7dtd/start-stop-daemon
[31]177
[32]178 gcc -Wall -Wextra -Wno-return-type -o start-stop-daemon start-stop-daemon.c
179 chown root.root start-stop-daemon
180 chmod 0755 start-stop-daemon
181
[1]182 echo -e "\n=============================================================\n\n"
183}
184
185installSteamCmdAndSDTD() {
186 echo -e "Installing SteamCMD and 7DtD\n"
[30]187 7dtd.sh updateengine
[1]188 echo -e "\n=============================================================\n\n"
189}
190
191addCronJobs() {
[30]192 echo -e "Enabling backup cron job\n"
[1]193
194 echo -e "By default a backup of the save folder will be created once"
195 echo -e " per hour. This can be changed in /etc/cron.d/7dtd-backup."
[30]196
197 cat /etc/cron.d/7dtd-backup | tr -d '#' > /tmp/7dtd-backup
198 cp /tmp/7dtd-backup /etc/cron.d
[1]199
200 echo -e "\n=============================================================\n\n"
201}
202
203finish() {
[30]204 if [ $ISDEBIAN -eq 0 ]; then
205 echo
206 echo "You are not running a Debian based distribution."
207 echo "The following things should manually be checked:"
208 echo " - Existence of prerequsities"
209 echo " - Running the init-script on boot"
210 else
211 echo -e "\n ALL DONE"
212 fi
213
[1]214 echo
[30]215 echo -e "You can now continue setting up instances as explained on the website:"
216 echo -e " https://7dtd.illy.bz/wiki/Instance%20management"
217 echo
[31]218 echo -e "You might also need to manually enable bash auto completion, refer to:"
219 echo -e " https://7dtd.illy.bz/wiki/Installation#Bashcompletion"
220 echo
[1]221 echo -e "For further configuration options check:"
222 echo -e " /etc/7dtd.conf"
223 echo
[30]224 echo -e "For feedback, suggestions, problems please visit the bugtracker:"
225 echo -e " https://7dtd.illy.bz/"
[1]226 echo
227}
228
229main() {
230 intro
231 nonDebianWarning
232
[30]233 if [ $ISDEBIAN -eq 1 ]; then
[1]234 installAptDeps
[30]235 if [ $INSTALLOPTIONALDEPS -eq 1 ]; then
236# installOptionalDeps
[1]237 echo
238 fi
[32]239 else
[38]240 checkSetupDeps
[1]241 fi
242 setupUser
243 installManagementScripts
244 installSteamCmdAndSDTD
[30]245 if [ $ADDCRONJOBS -eq 1 ]; then
[1]246 addCronJobs
247 fi
248 finish
249}
250
[30]251if [ -z $1 ]; then
[1]252 showHelp
253 exit 0
254fi
255while getopts "hcoi" opt; do
256 case "$opt" in
257 h)
258 showHelp
259 exit 0
260 ;;
261 c)
262 ADDCRONJOBS=1
263 ;;
264 o)
265 INSTALLOPTIONALDEPS=1
266 ;;
267 i)
268 RUNINSTALL=1
269 ;;
270 esac
271done
[30]272if [ $RUNINSTALL -eq 1 ]; then
[1]273 main
274fi
275
Note: See TracBrowser for help on using the repository browser.