install_config.sh 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. #!/bin/bash
  2. # LGSM install_config.sh function
  3. # Author: Daniel Gibbs
  4. # Website: https://gameservermanagers.com
  5. # Description: Creates default server configs.
  6. local commandname="INSTALL"
  7. local commandaction="Install"
  8. local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
  9. fn_fetch_default_config(){
  10. mkdir -pv "${lgsmdir}/default-configs"
  11. githuburl="https://github.com/GameServerManagers/Game-Server-Configs/master"
  12. for config in "${array_configs[@]}"
  13. do
  14. fileurl="https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/master/${gamedirname}/${config}"; filedir="${lgsmdir}/default-configs"; filename="${config}"; executecmd="noexecute" run="norun"; force="noforce"
  15. fn_fetch_file "${fileurl}" "${filedir}" "${filename}" "${executecmd}" "${run}" "${force}" "${md5}"
  16. done
  17. }
  18. # Changes some variables within the default configs
  19. # SERVERNAME to LinuxGSM
  20. # PASSWORD to random password
  21. fn_set_config_vars(){
  22. random=$(strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 8 | tr -d '\n'; echo)
  23. servername="LinuxGSM"
  24. rconpass="admin$random"
  25. echo "changing hostname."
  26. fn_script_log_info "changing hostname."
  27. sleep 1
  28. sed -i "s/SERVERNAME/${servername}/g" "${servercfgfullpath}"
  29. echo "changing rcon/admin password."
  30. fn_script_log_info "changing rcon/admin password."
  31. sed -i "s/ADMINPASSWORD/${rconpass}/g" "${servercfgfullpath}"
  32. sleep 1
  33. }
  34. # Checks if cfg dir exists, creates it if it doesn't
  35. fn_check_cfgdir(){
  36. if [ ! -d "${servercfgdir}" ]; then
  37. echo "creating ${servercfgdir} config folder."
  38. fn_script_log_info "creating ${servercfgdir} config folder."
  39. mkdir -pv "${servercfgdir}"
  40. fi
  41. }
  42. # Copys the default configs from Game-Server-Configs repo to the
  43. # correct location
  44. fn_default_config_remote(){
  45. for config in "${array_configs[@]}"
  46. do
  47. # every config is copied
  48. echo "copying ${servercfg} config file."
  49. fn_script_log_info "copying ${servercfg} config file."
  50. if [ "${config}" == "${servercfgdefault}" ]; then
  51. cp -v "${lgsmdir}/default-configs/${config}" "${servercfgfullpath}"
  52. elif [ "${config}" == "${networkcfgdefault}" ]; then
  53. # ARMA 3
  54. cp -v "${lgsmdir}/default-configs/${config}" "${networkcfgfullpath}"
  55. else
  56. cp -v "${lgsmdir}/default-configs/${config}" "${servercfgdir}/${config}"
  57. fi
  58. done
  59. sleep 1
  60. }
  61. echo ""
  62. echo "Downloading ${gamename} Config"
  63. echo "================================="
  64. echo "default configs from https://github.com/GameServerManagers/Game-Server-Configs"
  65. sleep 2
  66. if [ "${gamename}" == "7 Days To Die" ]; then
  67. gamedirname="7DaysToDie"
  68. array_configs+=( serverconfig.xml )
  69. fn_fetch_default_config
  70. fn_default_config_remote
  71. fn_set_config_vars
  72. elif [ "${gamename}" == "ARK: Survivial Evolved" ]; then
  73. gamedirname="ARKSurvivalEvolved"
  74. array_configs+=( GameUserSettings.ini )
  75. fn_fetch_default_config
  76. fn_default_config_remote
  77. fn_set_config_vars
  78. elif [ "${gamename}" == "ARMA 3" ]; then
  79. gamedirname="Arma3"
  80. fn_check_cfgdir
  81. array_configs+=( server.cfg network.cfg )
  82. fn_fetch_default_config
  83. fn_default_config_remote
  84. fn_set_config_vars
  85. elif [ "${gamename}" == "Battlefield: 1942" ]; then
  86. gamedirname="Battlefield1942"
  87. array_configs+=( serversettings.con )
  88. fn_fetch_default_config
  89. fn_default_config_remote
  90. fn_set_config_vars
  91. elif [ "${gamename}" == "Blade Symphony" ]; then
  92. gamedirname="BladeSymphony"
  93. array_configs+=( server.cfg )
  94. fn_fetch_default_config
  95. fn_default_config_remote
  96. fn_set_config_vars
  97. elif [ "${gamename}" == "BrainBread 2" ]; then
  98. gamedirname="BrainBread2"
  99. array_configs+=( server.cfg )
  100. fn_fetch_default_config
  101. fn_default_config_remote
  102. fn_set_config_vars
  103. elif [ "${gamename}" == "Black Mesa: Deathmatch" ]; then
  104. gamedirname="BlackMesa"
  105. array_configs+=( server.cfg )
  106. fn_fetch_default_config
  107. fn_default_config_remote
  108. fn_set_config_vars
  109. elif [ "${gamename}" == "Codename CURE" ]; then
  110. gamedirname="CodenameCURE"
  111. array_configs+=( server.cfg )
  112. fn_fetch_default_config
  113. fn_default_config_remote
  114. fn_set_config_vars
  115. elif [ "${gamename}" == "Counter-Strike 1.6" ]; then
  116. gamedirname="CounterStrike"
  117. array_configs+=( server.cfg )
  118. fn_fetch_default_config
  119. fn_default_config_remote
  120. fn_set_config_vars
  121. elif [ "${gamename}" == "Counter-Strike: Condition Zero" ]; then
  122. gamedirname="CounterStrikeConditionZero"
  123. array_configs+=( server.cfg )
  124. fn_fetch_default_config
  125. fn_default_config_remote
  126. fn_set_config_vars
  127. elif [ "${gamename}" == "Counter-Strike: Global Offensive" ]; then
  128. gamedirname="CounterStrikeGlobalOffensive"
  129. array_configs+=( server.cfg )
  130. fn_fetch_default_config
  131. fn_default_config_remote
  132. fn_set_config_vars
  133. elif [ "${gamename}" == "Counter-Strike: Source" ]; then
  134. gamedirname="CounterStrikeSource"
  135. array_configs+=( server.cfg )
  136. fn_fetch_default_config
  137. fn_default_config_remote
  138. fn_set_config_vars
  139. elif [ "${gamename}" == "Day of Defeat" ]; then
  140. gamedirname="DayOfDefeat"
  141. array_configs+=( server.cfg )
  142. fn_fetch_default_config
  143. fn_default_config_remote
  144. fn_set_config_vars
  145. elif [ "${gamename}" == "Day of Defeat: Source" ]; then
  146. gamedirname="DayOfDefeatSource"
  147. array_configs+=( server.cfg )
  148. fn_fetch_default_config
  149. fn_default_config_remote
  150. fn_set_config_vars
  151. elif [ "${gamename}" == "Day of Infamy" ]; then
  152. gamedirname="DayOfInfamy"
  153. array_configs+=( server.cfg )
  154. fn_fetch_default_config
  155. fn_default_config_remote
  156. fn_set_config_vars
  157. elif [ "${gamename}" == "Deathmatch Classic" ]; then
  158. gamedirname="DeathmatchClassic"
  159. array_configs+=( server.cfg )
  160. fn_fetch_default_config
  161. fn_default_config_remote
  162. fn_set_config_vars
  163. elif [ "${gamename}" == "Don't Starve Together" ]; then
  164. gamedirname="DontStarveTogether"
  165. array_configs+=( Settings.ini )
  166. fn_fetch_default_config
  167. fn_default_config_remote
  168. fn_set_config_vars
  169. elif [ "${gamename}" == "Double Action: Boogaloo" ]; then
  170. gamedirname="DoubleActionBoogaloo"
  171. array_configs+=( server.cfg )
  172. fn_fetch_default_config
  173. fn_default_config_remote
  174. fn_set_config_vars
  175. elif [ "${gamename}" == "Fistful of Frags" ]; then
  176. gamedirname="FistfulofFrags"
  177. array_configs+=( server.cfg )
  178. fn_fetch_default_config
  179. fn_default_config_remote
  180. fn_set_config_vars
  181. elif [ "${gamename}" == "Garry's Mod" ]; then
  182. gamedirname="GarrysMod"
  183. array_configs+=( server.cfg )
  184. fn_fetch_default_config
  185. fn_default_config_remote
  186. fn_set_config_vars
  187. elif [ "${gamename}" == "GoldenEye: Source" ]; then
  188. gamedirname="GoldenEyeSource"
  189. array_configs+=( server.cfg )
  190. fn_fetch_default_config
  191. fn_default_config_remote
  192. fn_set_config_vars
  193. elif [ "${gamename}" == "Half Life: Deathmatch" ]; then
  194. gamedirname="HalfLifeDeathmatch"
  195. array_configs+=( server.cfg )
  196. fn_fetch_default_config
  197. fn_default_config_remote
  198. fn_set_config_vars
  199. elif [ "${gamename}" == "Half-Life Deathmatch: Source" ]; then
  200. gamedirname="HalfLifeDeathmatchSource"
  201. array_configs+=( server.cfg )
  202. fn_fetch_default_config
  203. fn_default_config_remote
  204. fn_set_config_vars
  205. elif [ "${gamename}" == "Half-Life: Opposing Force" ]; then
  206. gamedirname="OpposingForce"
  207. array_configs+=( server.cfg )
  208. fn_fetch_default_config
  209. fn_default_config_remote
  210. fn_set_config_vars
  211. elif [ "${gamename}" == "Half Life 2: Deathmatch" ]; then
  212. gamedirname="HalfLife2Deathmatch"
  213. array_configs+=( server.cfg )
  214. fn_fetch_default_config
  215. fn_default_config_remote
  216. fn_set_config_vars
  217. elif [ "${gamename}" == "Insurgency" ]; then
  218. gamedirname="Insurgency"
  219. array_configs+=( server.cfg )
  220. fn_fetch_default_config
  221. fn_default_config_remote
  222. fn_set_config_vars
  223. elif [ "${gamename}" == "Just Cause 2" ]; then
  224. gamedirname="JustCause2"
  225. array_configs+=( config.lua )
  226. fn_fetch_default_config
  227. fn_default_config_remote
  228. fn_set_config_vars
  229. elif [ "${gamename}" == "Killing Floor" ]; then
  230. gamedirname="KillingFloor"
  231. array_configs+=( Default.ini )
  232. fn_fetch_default_config
  233. fn_default_config_remote
  234. fn_set_config_vars
  235. elif [ "${gamename}" == "Left 4 Dead" ]; then
  236. gamedirname="Left4Dead"
  237. array_configs+=( server.cfg )
  238. fn_fetch_default_config
  239. fn_default_config_remote
  240. fn_set_config_vars
  241. elif [ "${gamename}" == "Left 4 Dead" ]; then
  242. gamedirname="Left4Dead"
  243. array_configs+=( server.cfg )
  244. fn_fetch_default_config
  245. fn_default_config_remote
  246. fn_set_config_vars
  247. elif [ "${gamename}" == "Left 4 Dead 2" ]; then
  248. gamedirname="Left4Dead2"
  249. array_configs+=( server.cfg )
  250. fn_fetch_default_config
  251. fn_default_config_remote
  252. fn_set_config_vars
  253. elif [ "${gamename}" == "Minecraft" ]; then
  254. gamedirname="Minecraft"
  255. array_configs+=( server.properties )
  256. fn_fetch_default_config
  257. fn_default_config_remote
  258. fn_set_config_vars
  259. elif [ "${gamename}" == "No More Room in Hell" ]; then
  260. gamedirname="NoMoreRoominHell"
  261. array_configs+=( server.cfg )
  262. fn_fetch_default_config
  263. fn_default_config_remote
  264. fn_set_config_vars
  265. elif [ "${gamename}" == "Mumble" ]; then
  266. :
  267. elif [ "${gamename}" == "Natural Selection 2" ]; then
  268. :
  269. elif [ "${gamename}" == "NS2: Combat" ]; then
  270. :
  271. elif [ "${gamename}" == "Pirates, Vikings, and Knights II" ]; then
  272. gamedirname="PiratesVikingandKnightsII"
  273. array_configs+=( server.cfg )
  274. fn_fetch_default_config
  275. fn_default_config_remote
  276. fn_set_config_vars
  277. elif [ "${gamename}" == "Project Zomboid" ]; then
  278. gamedirname="ProjectZomboid"
  279. array_configs+=( server.ini )
  280. fn_fetch_default_config
  281. fn_default_config_remote
  282. fn_set_config_vars
  283. elif [ "${gamename}" == "Quake Live" ]; then
  284. gamedirname="QuakeLive"
  285. array_configs+=( server.cfg )
  286. fn_fetch_default_config
  287. fn_default_config_remote
  288. fn_set_config_vars
  289. elif [ "${gamename}" == "Red Orchestra: Ostfront 41-45" ]; then
  290. :
  291. elif [ "${gamename}" == "Ricochet" ]; then
  292. gamedirname="Ricochet"
  293. array_configs+=( server.cfg )
  294. fn_fetch_default_config
  295. fn_default_config_remote
  296. fn_set_config_vars
  297. elif [ "${gamename}" == "Rust" ]; then
  298. gamedirname="Rust"
  299. array_configs+=( server.cfg )
  300. fn_fetch_default_config
  301. fn_default_config_remote
  302. fn_set_config_vars
  303. elif [ "${gamename}" == "Serious Sam 3: BFE" ]; then
  304. gamedirname="SeriousSam3BFE"
  305. array_configs+=( server.ini )
  306. fn_fetch_default_config
  307. fn_default_config_remote
  308. fn_set_config_vars
  309. elif [ "${gamename}" == "Starbound" ]; then
  310. gamedirname="Starbound"
  311. array_configs+=( starbound.config )
  312. fn_fetch_default_config
  313. fn_default_config_remote
  314. fn_set_config_vars
  315. elif [ "${gamename}" == "Sven Co-op" ]; then
  316. gamedirname="SvenCoop"
  317. array_configs+=( server.cfg )
  318. fn_fetch_default_config
  319. fn_default_config_remote
  320. fn_set_config_vars
  321. elif [ "${gamename}" == "Team Fortress 2" ]; then
  322. gamedirname="TeamFortress2"
  323. array_configs+=( server.cfg )
  324. fn_fetch_default_config
  325. fn_default_config_remote
  326. fn_set_config_vars
  327. elif [ "${gamename}" == "Team Fortress Classic" ]; then
  328. gamedirname="TeamFortressClassic"
  329. array_configs+=( server.cfg )
  330. fn_fetch_default_config
  331. fn_default_config_remote
  332. fn_set_config_vars
  333. elif [ "${gamename}" == "TeamSpeak 3" ]; then
  334. gamedirname="TeamSpeak3"
  335. array_configs+=( ts3server.ini )
  336. fn_fetch_default_config
  337. fn_default_config_remote
  338. fn_set_config_vars
  339. elif [ "${gamename}" == "Teeworlds" ]; then
  340. gamedirname="Teeworlds"
  341. array_configs+=( server.cfg ctf.cfg dm.cfg duel.cfg tdm.cfg )
  342. fn_fetch_default_config
  343. fn_default_config_remote
  344. fn_set_config_vars
  345. elif [ "${gamename}" == "Terraria" ]; then
  346. gamedirname="Terraria"
  347. array_configs+=( serverconfig.txt )
  348. fn_fetch_default_config
  349. fn_default_config_remote
  350. fn_set_config_vars
  351. elif [ "${gamename}" == "Unreal Tournament" ]; then
  352. gamedirname="UnrealTournament"
  353. array_configs+=( Game.ini Engine.ini )
  354. fn_fetch_default_config
  355. fn_default_config_remote
  356. fn_set_config_vars
  357. elif [ "${gamename}" == "Unreal Tournament 2004" ]; then
  358. gamedirname="UnrealTournament2004"
  359. array_configs+=( UT2004.ini )
  360. fn_fetch_default_config
  361. fn_default_config_remote
  362. fn_set_config_vars
  363. elif [ "${gamename}" == "Unreal Tournament 3" ]; then
  364. gamedirname="UnrealTournament3"
  365. array_configs+=( UTGame.ini )
  366. fn_fetch_default_config
  367. fn_default_config_remote
  368. fn_set_config_vars
  369. elif [ "${gamename}" == "Unreal Tournament 99" ]; then
  370. gamedirname="UnrealTournament99"
  371. array_configs+=( Default.ini )
  372. fn_fetch_default_config
  373. fn_default_config_remote
  374. fn_set_config_vars
  375. elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
  376. gamedirname="WolfensteinEnemyTerritory"
  377. array_configs+=( server.cfg )
  378. fn_fetch_default_config
  379. fn_default_config_remote
  380. fn_set_config_vars
  381. fi