install_config.sh 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. #!/bin/bash
  2. # LGSM install_config.sh function
  3. # Author: Daniel Gibbs
  4. # Website: https://gameservermanagers.com
  5. local commandname="INSTALL"
  6. local commandaction="Install"
  7. local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
  8. fn_defaultconfig(){
  9. echo "creating ${servercfg} config file."
  10. fn_script_log_info "creating ${servercfg} config file."
  11. cp -v "${servercfgdefault}" "${servercfgfullpath}"
  12. sleep 1
  13. }
  14. fn_userinputconfig(){
  15. # allow user to input server name and password
  16. if [ -z "${autoinstall}" ]; then
  17. echo ""
  18. echo "Configuring ${gamename} Server"
  19. echo "================================="
  20. sleep 1
  21. read -p "Enter server name: " servername
  22. read -p "Enter rcon password: " rconpass
  23. else
  24. servername="${servicename}"
  25. rconpass="rconpassword"
  26. fi
  27. echo "changing hostname."
  28. fn_script_log_info "changing hostname."
  29. sed -i "s/\"<hostname>\"/\"${servername}\"/g" "${servercfgfullpath}"
  30. sleep 1
  31. echo "changing rconpassword."
  32. fn_script_log_info "changing rconpassword."
  33. sed -i "s/\"<rconpassword>\"/\"${rconpass}\"/g" "${servercfgfullpath}"
  34. sleep 1
  35. }
  36. fn_arma3config(){
  37. fn_defaultconfig
  38. echo "creating ${networkcfg} config file."
  39. fn_script_log_info "creating ${networkcfg} config file."
  40. cp -v "${networkcfgdefault}" "${networkcfgfullpath}"
  41. sleep 1
  42. echo ""
  43. }
  44. fn_goldsourceconfig(){
  45. fn_defaultconfig
  46. # server.cfg redirects to ${servercfg} for added security
  47. echo "creating server.cfg."
  48. fn_script_log_info "creating server.cfg."
  49. touch "server.cfg"
  50. sleep 1
  51. echo "creating redirect."
  52. fn_script_log_info "creating redirect."
  53. echo "server.cfg > ${servercfg}."
  54. echo "exec ${servercfg}" > "server.cfg"
  55. sleep 1
  56. # creating other files required
  57. echo "creating listip.cfg."
  58. fn_script_log_info "creating listip.cfg."
  59. touch "${systemdir}/listip.cfg"
  60. sleep 1
  61. echo "creating banned.cfg."
  62. fn_script_log_info "creating banned.cfg."
  63. touch "${systemdir}/banned.cfg"
  64. sleep 1
  65. fn_userinputconfig
  66. echo ""
  67. }
  68. fn_serious3config(){
  69. fn_defaultconfig
  70. echo ""
  71. echo "To edit ${gamename} server config use SS3 Server GUI 3 tool"
  72. echo "http://mrag.nl/sgui3/"
  73. fn_script_log_info "To edit ${gamename} server config use SS3 Server GUI 3 tool"
  74. fn_script_log_info "http://mrag.nl/sgui3/"
  75. sleep 1
  76. echo ""
  77. }
  78. fn_sourceconfig(){
  79. fn_defaultconfig
  80. # server.cfg redirects to ${servercfg} for added security
  81. echo "creating server.cfg."
  82. fn_script_log_info "creating server.cfg."
  83. touch "server.cfg"
  84. sleep 1
  85. echo "creating redirect."
  86. fn_script_log_info "creating redirect."
  87. echo "server.cfg > ${servercfg}."
  88. echo "exec ${servercfg}" > "server.cfg"
  89. sleep 1
  90. fn_userinputconfig
  91. echo ""
  92. }
  93. fn_teeworldsconfig(){
  94. fn_defaultconfig
  95. echo "adding logfile location to config."
  96. fn_script_log_info "adding logfile location to config."
  97. sed -i "s@\"<logfile>\"@\"${gamelog}\"@g" "${servercfgfullpath}"
  98. sleep 1
  99. echo "removing password holder."
  100. fn_script_log_info "removing password holder."
  101. sed -i "s/<password>//" "${servercfgfullpath}"
  102. sleep 1
  103. fn_userinputconfig
  104. echo ""
  105. }
  106. fn_ut99config(){
  107. echo "creating ${servercfg} config file."
  108. fn_script_log_info "creating ${servercfg} config file."
  109. echo "${servercfgdefault} > ${servercfgfullpath}"
  110. tr -d '\r' < "${servercfgdefault}" > "${servercfgfullpath}"
  111. sleep 1
  112. echo ""
  113. echo "Configuring ${gamename} Server"
  114. echo "================================="
  115. sleep 1
  116. echo "enabling WebAdmin."
  117. fn_script_log_info "enabling WebAdmin."
  118. sed -i 's/bEnabled=False/bEnabled=True/g' "${servercfgfullpath}"
  119. sleep 1
  120. echo "setting WebAdmin port to 8076."
  121. fn_script_log_info "setting WebAdmin port to 8076."
  122. sed -i '467i\ListenPort=8076' "${servercfgfullpath}"
  123. sleep 1
  124. echo ""
  125. }
  126. fn_unreal2config(){
  127. fn_defaultconfig
  128. echo ""
  129. echo "Configuring ${gamename} Server"
  130. echo "================================="
  131. sleep 1
  132. echo "setting WebAdmin username and password."
  133. fn_script_log_info "setting WebAdmin username and password."
  134. sed -i 's/AdminName=/AdminName=admin/g' "${servercfgfullpath}"
  135. sed -i 's/AdminPassword=/AdminPassword=admin/g' "${servercfgfullpath}"
  136. sleep 1
  137. echo "enabling WebAdmin."
  138. fn_script_log_info "enabling WebAdmin."
  139. sed -i 's/bEnabled=False/bEnabled=True/g' "${servercfgfullpath}"
  140. if [ "${gamename}" == "Unreal Tournament 2004" ]; then
  141. sleep 1
  142. echo "setting WebAdmin port to 8075."
  143. fn_script_log_info "setting WebAdmin port to 8075."
  144. sed -i 's/ListenPort=80/ListenPort=8075/g' "${servercfgfullpath}"
  145. fi
  146. sleep 1
  147. echo ""
  148. }
  149. echo ""
  150. if [ "${gamename}" != "Hurtworld" ]; then
  151. echo "Creating Configs"
  152. echo "================================="
  153. sleep 1
  154. mkdir -pv "${servercfgdir}"
  155. cd "${servercfgdir}"
  156. githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}"
  157. fi
  158. if [ "${gamename}" == "7 Days To Die" ]; then
  159. fn_defaultconfig
  160. elif [ "${gamename}" == "ARK: Survivial Evolved" ]; then
  161. wget -N /dev/null ${githuburl}/ARKSurvivalEvolved/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
  162. sleep 1
  163. echo -e "downloading lgsm-default.ini...\c"
  164. fn_defaultconfig
  165. elif [ "${gamename}" == "ARMA 3" ]; then
  166. echo -e "downloading lgsm-default.server.cfg...\c"
  167. wget -N /dev/null ${githuburl}/Arma3/cfg/lgsm-default.server.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  168. sleep 1
  169. echo -e "downloading lgsm-default.network.cfg...\c"
  170. wget -N /dev/null ${githuburl}/Arma3/cfg/lgsm-default.network.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  171. sleep 1
  172. fn_arma3config
  173. elif [ "${gamename}" == "BrainBread 2" ]; then
  174. echo -e "downloading lgsm-default.cfg...\c"
  175. wget -N /dev/null ${githuburl}/BrainBread2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  176. sleep 1
  177. fn_sourceconfig
  178. elif [ "${gamename}" == "Black Mesa: Deathmatch" ]; then
  179. echo -e "downloading lgsm-default.cfg...\c"
  180. wget -N /dev/null ${githuburl}/BlackMesa/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  181. sleep 1
  182. fn_sourceconfig
  183. elif [ "${gamename}" == "Blade Symphony" ]; then
  184. echo -e "downloading lgsm-default.cfg...\c"
  185. wget -N /dev/null ${githuburl}/BladeSymphony/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  186. sleep 1
  187. fn_goldsourceconfig
  188. elif [ "${gamename}" == "Codename CURE" ]; then
  189. echo -e "downloading lgsm-default.cfg...\c"
  190. wget -N /dev/null ${githuburl}/CodenameCURE/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  191. sleep 1
  192. fn_sourceconfig
  193. elif [ "${gamename}" == "Counter Strike 1.6" ]; then
  194. echo -e "downloading lgsm-default.cfg...\c"
  195. wget -N /dev/null ${githuburl}/CounterStrike/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  196. sleep 1
  197. fn_goldsourceconfig
  198. elif [ "${gamename}" == "Counter Strike: Condition Zero" ]; then
  199. echo -e "downloading lgsm-default.cfg...\c"
  200. wget -N /dev/null ${githuburl}/CounterStrikeConditionZero/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  201. sleep 1
  202. fn_goldsourceconfig
  203. elif [ "${gamename}" == "Counter Strike: Global Offensive" ]; then
  204. echo -e "downloading lgsm-default.cfg...\c"
  205. wget -N /dev/null ${githuburl}/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  206. sleep 1
  207. fn_sourceconfig
  208. elif [ "${gamename}" == "Counter Strike: Source" ]; then
  209. echo -e "downloading lgsm-default.cfg...\c"
  210. wget -N /dev/null ${githuburl}/CounterStrikeSource/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  211. sleep 1
  212. fn_sourceconfig
  213. elif [ "${gamename}" == "Day of Defeat" ]; then
  214. echo -e "downloading lgsm-default.cfg...\c"
  215. wget -N /dev/null ${githuburl}/DayOfDefeat/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  216. sleep 1
  217. fn_goldsourceconfig
  218. elif [ "${gamename}" == "Day of Defeat: Source" ]; then
  219. echo -e "downloading lgsm-default.cfg...\c"
  220. wget -N /dev/null ${githuburl}/DayOfDefeatSource/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  221. sleep 1
  222. fn_sourceconfig
  223. elif [ "${gamename}" == "Don't Starve Together" ]; then
  224. echo -e "downloading lgsm-default.ini...\c"
  225. wget -N /dev/null ${githuburl}/DontStarveTogether/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
  226. sleep 1
  227. fn_defaultconfig
  228. elif [ "${gamename}" == "Double Action: Boogaloo" ]; then
  229. echo -e "downloading lgsm-default.cfg...\c"
  230. wget -N /dev/null ${githuburl}/DoubleActionBoogaloo/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  231. sleep 1
  232. fn_sourceconfig
  233. elif [ "${gamename}" == "Fistful of Frags" ]; then
  234. echo -e "downloading lgsm-default.cfg...\c"
  235. wget -N /dev/null ${githuburl}/FistfulOfFrags/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  236. sleep 1
  237. fn_sourceconfig
  238. elif [ "${gamename}" == "Garry's Mod" ]; then
  239. echo -e "downloading lgsm-default.cfg...\c"
  240. wget -N /dev/null ${githuburl}/GarrysMod/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  241. sleep 1
  242. fn_sourceconfig
  243. elif [ "${gamename}" == "GoldenEye: Source" ]; then
  244. echo -e "downloading lgsm-default.cfg...\c"
  245. wget -N /dev/null ${githuburl}/GoldenEyeSource/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  246. sleep 1
  247. fn_sourceconfig
  248. elif [ "${gamename}" == "Half Life 2: Deathmatch" ]; then
  249. echo -e "downloading lgsm-default.cfg...\c"
  250. wget -N /dev/null ${githuburl}/HalfLife2Deathmatch/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  251. sleep 1
  252. fn_sourceconfig
  253. elif [ "${gamename}" == "Half Life: Deathmatch" ]; then
  254. echo -e "downloading lgsm-default.cfg...\c"
  255. wget -N /dev/null ${githuburl}/HalfLifeDeathmatch/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  256. sleep 1
  257. fn_goldsourceconfig
  258. elif [ "${gamename}" == "Insurgency" ]; then
  259. echo -e "downloading lgsm-default.cfg...\c"
  260. wget -N /dev/null ${githuburl}/Insurgency/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  261. sleep 1
  262. fn_sourceconfig
  263. elif [ "${gamename}" == "Just Cause 2" ]; then
  264. fn_defaultconfig
  265. elif [ "${gamename}" == "Killing Floor" ]; then
  266. fn_unreal2config
  267. elif [ "${gamename}" == "Left 4 Dead" ]; then
  268. echo -e "downloading lgsm-default.cfg...\c"
  269. wget -N /dev/null ${githuburl}/Left4Dead/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  270. sleep 1
  271. fn_sourceconfig
  272. elif [ "${gamename}" == "Left 4 Dead 2" ]; then
  273. echo -e "downloading lgsm-default.cfg...\c"
  274. wget -N /dev/null ${githuburl}/Left4Dead2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  275. sleep 1
  276. fn_sourceconfig
  277. elif [ "${gamename}" == "No More Room in Hell" ]; then
  278. echo -e "downloading lgsm-default.cfg...\c"
  279. wget -N /dev/null ${githuburl}/NoMoreRoomInHell/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  280. sleep 1
  281. fn_sourceconfig
  282. elif [ "${gamename}" == "Natural Selection 2" ]; then
  283. echo -e "no configs required."
  284. sleep 1
  285. echo ""
  286. elif [ "${gamename}" == "Pirates, Vikings, and Knights II" ]; then
  287. echo -e "downloading lgsm-default.cfg...\c"
  288. wget -N /dev/null ${githuburl}/PiratesVikingandKnightsII/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  289. sleep 1
  290. fn_sourceconfig
  291. elif [ "${gamename}" == "Project Zomboid" ]; then
  292. echo -e "downloading lgsm-default.ini...\c"
  293. wget -N /dev/null ${githuburl}/ProjectZomboid/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
  294. sleep 1
  295. fn_defaultconfig
  296. elif [ "${gamename}" == "Quake Live" ]; then
  297. echo -e "downloading lgsm-default.cfg...\c"
  298. wget -N /dev/null ${githuburl}/QuakeLive/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  299. sleep 1
  300. fn_defaultconfig
  301. fn_userinputconfig
  302. elif [ "${gamename}" == "Red Orchestra: Ostfront 41-45" ]; then
  303. fn_unreal2config
  304. elif [ "${gamename}" == "Serious Sam 3: BFE" ]; then
  305. echo -e "downloading lgsm-default.ini...\c"
  306. wget -N /dev/null ${githuburl}/SeriousSam3BFE/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
  307. sleep 1
  308. fn_serious3config
  309. elif [ "${gamename}" == "Rust" ]; then
  310. echo -e "downloading server.cfg...\c"
  311. wget -N /dev/null ${githuburl}/Rust/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  312. sleep 1
  313. fn_defaultconfig
  314. elif [ "${gamename}" == "Sven Co-op" ]; then
  315. echo -e "downloading lgsm-default.cfg...\c"
  316. wget -N /dev/null ${githuburl}/SvenCoop/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  317. sleep 1
  318. fn_goldsourceconfig
  319. elif [ "${gamename}" == "Starbound" ]; then
  320. echo -e "downloading lgsm-default.config...\c"
  321. wget -N /dev/null ${githuburl}/Starbound/cfg/lgsm-default.config 2>&1 | grep -F HTTP | cut -c45- | uniq
  322. sleep 1
  323. fn_defaultconfig
  324. fn_userinputconfig
  325. elif [ "${gamename}" == "Teamspeak 3" ]; then
  326. echo -e "downloading lgsm-default.ini...\c"
  327. wget -N /dev/null ${githuburl}/TeamSpeak3/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
  328. sleep 1
  329. fn_defaultconfig
  330. elif [ "${gamename}" == "Team Fortress 2" ]; then
  331. echo -e "downloading lgsm-default.cfg...\c"
  332. wget -N /dev/null ${githuburl}/TeamFortress2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  333. sleep 1
  334. fn_sourceconfig
  335. elif [ "${gamename}" == "Team Fortress Classic" ]; then
  336. echo -e "downloading lgsm-default.cfg...\c"
  337. wget -N /dev/null ${githuburl}/TeamFortressClassic/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  338. sleep 1
  339. fn_goldsourceconfig
  340. elif [ "${gamename}" == "Teeworlds" ]; then
  341. echo -e "downloading ctf.cfg...\c"
  342. wget -N /dev/null ${githuburl}/Teeworlds/cfg/ctf.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  343. echo -e "downloading dm.cfg...\c"
  344. wget -N /dev/null ${githuburl}/Teeworlds/cfg/dm.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  345. echo -e "downloading duel.cfg...\c"
  346. wget -N /dev/null ${githuburl}/Teeworlds/cfg/duel.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  347. echo -e "downloading tdm.cfg...\c"
  348. wget -N /dev/null ${githuburl}/Teeworlds/cfg/tdm.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  349. echo -e "downloading lgsm-default.cfg...\c"
  350. wget -N /dev/null ${githuburl}/Teeworlds/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
  351. sleep 1
  352. fn_teeworldsconfig
  353. elif [ "${gamename}" == "Terraria" ]; then
  354. echo -e "downloading lgsm-default.txt...\c"
  355. wget -N /dev/null ${githuburl}/Terraria/cfg/lgsm-default.txt 2>&1 | grep -F HTTP | cut -c45- | uniq
  356. sleep 1
  357. fn_defaultconfig
  358. elif [ "${gamename}" == "Unreal Tournament 2004" ]; then
  359. fn_unreal2config
  360. elif [ "${gamename}" == "Unreal Tournament 99" ]; then
  361. fn_ut99config
  362. fi