install_config.sh 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  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 directory."
  38. fn_script_log_info "creating ${servercfgdir} config directory."
  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}" == "Call of Duty" ]; then
  110. gamedirname="CallOfDuty"
  111. array_configs+=( server.cfg )
  112. fn_fetch_default_config
  113. fn_default_config_remote
  114. fn_set_config_vars
  115. elif [ "${gamename}" == "Call of Duty 2" ]; then
  116. gamedirname="CallofDuty2"
  117. array_configs+=( server.cfg )
  118. fn_fetch_default_config
  119. fn_default_config_remote
  120. fn_set_config_vars
  121. elif [ "${gamename}" == "Codename CURE" ]; then
  122. gamedirname="CodenameCURE"
  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 1.6" ]; then
  128. gamedirname="CounterStrike"
  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: Condition Zero" ]; then
  134. gamedirname="CounterStrikeConditionZero"
  135. array_configs+=( server.cfg )
  136. fn_fetch_default_config
  137. fn_default_config_remote
  138. fn_set_config_vars
  139. elif [ "${gamename}" == "Counter-Strike: Global Offensive" ]; then
  140. gamedirname="CounterStrikeGlobalOffensive"
  141. array_configs+=( server.cfg )
  142. fn_fetch_default_config
  143. fn_default_config_remote
  144. fn_set_config_vars
  145. elif [ "${gamename}" == "Counter-Strike: Source" ]; then
  146. gamedirname="CounterStrikeSource"
  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 Defeat" ]; then
  152. gamedirname="DayOfDefeat"
  153. array_configs+=( server.cfg )
  154. fn_fetch_default_config
  155. fn_default_config_remote
  156. fn_set_config_vars
  157. elif [ "${gamename}" == "Day of Defeat: Source" ]; then
  158. gamedirname="DayOfDefeatSource"
  159. array_configs+=( server.cfg )
  160. fn_fetch_default_config
  161. fn_default_config_remote
  162. fn_set_config_vars
  163. elif [ "${gamename}" == "Day of Infamy" ]; then
  164. gamedirname="DayOfInfamy"
  165. array_configs+=( server.cfg )
  166. fn_fetch_default_config
  167. fn_default_config_remote
  168. fn_set_config_vars
  169. elif [ "${gamename}" == "Deathmatch Classic" ]; then
  170. gamedirname="DeathmatchClassic"
  171. array_configs+=( server.cfg )
  172. fn_fetch_default_config
  173. fn_default_config_remote
  174. fn_set_config_vars
  175. elif [ "${gamename}" == "Don't Starve Together" ]; then
  176. gamedirname="DontStarveTogether"
  177. array_configs+=( Settings.ini )
  178. fn_fetch_default_config
  179. fn_default_config_remote
  180. fn_set_config_vars
  181. elif [ "${gamename}" == "Double Action: Boogaloo" ]; then
  182. gamedirname="DoubleActionBoogaloo"
  183. array_configs+=( server.cfg )
  184. fn_fetch_default_config
  185. fn_default_config_remote
  186. fn_set_config_vars
  187. elif [ "${gamename}" == "Fistful of Frags" ]; then
  188. gamedirname="FistfulofFrags"
  189. array_configs+=( server.cfg )
  190. fn_fetch_default_config
  191. fn_default_config_remote
  192. fn_set_config_vars
  193. elif [ "${gamename}" == "Garry's Mod" ]; then
  194. gamedirname="GarrysMod"
  195. array_configs+=( server.cfg )
  196. fn_fetch_default_config
  197. fn_default_config_remote
  198. fn_set_config_vars
  199. elif [ "${gamename}" == "GoldenEye: Source" ]; then
  200. gamedirname="GoldenEyeSource"
  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: Deathmatch" ]; then
  206. gamedirname="HalfLifeDeathmatch"
  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 Deathmatch: Source" ]; then
  212. gamedirname="HalfLifeDeathmatchSource"
  213. array_configs+=( server.cfg )
  214. fn_fetch_default_config
  215. fn_default_config_remote
  216. fn_set_config_vars
  217. elif [ "${gamename}" == "Half-Life: Opposing Force" ]; then
  218. gamedirname="OpposingForce"
  219. array_configs+=( server.cfg )
  220. fn_fetch_default_config
  221. fn_default_config_remote
  222. fn_set_config_vars
  223. elif [ "${gamename}" == "Half Life 2: Deathmatch" ]; then
  224. gamedirname="HalfLife2Deathmatch"
  225. array_configs+=( server.cfg )
  226. fn_fetch_default_config
  227. fn_default_config_remote
  228. fn_set_config_vars
  229. elif [ "${gamename}" == "Insurgency" ]; then
  230. gamedirname="Insurgency"
  231. array_configs+=( server.cfg )
  232. fn_fetch_default_config
  233. fn_default_config_remote
  234. fn_set_config_vars
  235. elif [ "${gamename}" == "Just Cause 2" ]; then
  236. gamedirname="JustCause2"
  237. array_configs+=( config.lua )
  238. fn_fetch_default_config
  239. fn_default_config_remote
  240. fn_set_config_vars
  241. elif [ "${gamename}" == "Killing Floor" ]; then
  242. gamedirname="KillingFloor"
  243. array_configs+=( Default.ini )
  244. fn_fetch_default_config
  245. fn_default_config_remote
  246. fn_set_config_vars
  247. elif [ "${gamename}" == "Left 4 Dead" ]; then
  248. gamedirname="Left4Dead"
  249. array_configs+=( server.cfg )
  250. fn_fetch_default_config
  251. fn_default_config_remote
  252. fn_set_config_vars
  253. elif [ "${gamename}" == "Left 4 Dead" ]; then
  254. gamedirname="Left4Dead"
  255. array_configs+=( server.cfg )
  256. fn_fetch_default_config
  257. fn_default_config_remote
  258. fn_set_config_vars
  259. elif [ "${gamename}" == "Left 4 Dead 2" ]; then
  260. gamedirname="Left4Dead2"
  261. array_configs+=( server.cfg )
  262. fn_fetch_default_config
  263. fn_default_config_remote
  264. fn_set_config_vars
  265. elif [ "${gamename}" == "Minecraft" ]; then
  266. gamedirname="Minecraft"
  267. array_configs+=( server.properties )
  268. fn_fetch_default_config
  269. fn_default_config_remote
  270. fn_set_config_vars
  271. elif [ "${gamename}" == "No More Room in Hell" ]; then
  272. gamedirname="NoMoreRoominHell"
  273. array_configs+=( server.cfg )
  274. fn_fetch_default_config
  275. fn_default_config_remote
  276. fn_set_config_vars
  277. elif [ "${gamename}" == "Mumble" ]; then
  278. gamedirname="Mumble"
  279. array_configs+=( murmur.ini )
  280. fn_fetch_default_config
  281. fn_default_config_remote
  282. elif [ "${gamename}" == "Natural Selection 2" ]; then
  283. :
  284. elif [ "${gamename}" == "NS2: Combat" ]; then
  285. :
  286. elif [ "${gamename}" == "Pirates, Vikings, and Knights II" ]; then
  287. gamedirname="PiratesVikingandKnightsII"
  288. array_configs+=( server.cfg )
  289. fn_fetch_default_config
  290. fn_default_config_remote
  291. fn_set_config_vars
  292. elif [ "${gamename}" == "Project Zomboid" ]; then
  293. gamedirname="ProjectZomboid"
  294. array_configs+=( server.ini )
  295. fn_fetch_default_config
  296. fn_default_config_remote
  297. fn_set_config_vars
  298. elif [ "${gamename}" == "Quake 2" ]; then
  299. gamedirname="Quake2"
  300. array_configs+=( server.cfg )
  301. fn_fetch_default_config
  302. fn_default_config_remote
  303. fn_set_config_vars
  304. elif [ "${gamename}" == "Quake 3: Arena" ]; then
  305. gamedirname="Quake3Arena"
  306. array_configs+=( server.cfg )
  307. fn_fetch_default_config
  308. fn_default_config_remote
  309. fn_set_config_vars
  310. elif [ "${gamename}" == "Quake Live" ]; then
  311. gamedirname="QuakeLive"
  312. array_configs+=( server.cfg )
  313. fn_fetch_default_config
  314. fn_default_config_remote
  315. fn_set_config_vars
  316. elif [ "${gamename}" == "QuakeWorld" ]; then
  317. gamedirname="QuakeWorld"
  318. array_configs+=( server.cfg )
  319. fn_fetch_default_config
  320. fn_default_config_remote
  321. fn_set_config_vars
  322. elif [ "${gamename}" == "Red Orchestra: Ostfront 41-45" ]; then
  323. :
  324. elif [ "${gamename}" == "Ricochet" ]; then
  325. gamedirname="Ricochet"
  326. array_configs+=( server.cfg )
  327. fn_fetch_default_config
  328. fn_default_config_remote
  329. fn_set_config_vars
  330. elif [ "${gamename}" == "Rust" ]; then
  331. gamedirname="Rust"
  332. fn_check_cfgdir
  333. array_configs+=( server.cfg )
  334. fn_fetch_default_config
  335. fn_default_config_remote
  336. elif [ "${gamename}" == "Serious Sam 3: BFE" ]; then
  337. gamedirname="SeriousSam3BFE"
  338. array_configs+=( server.ini )
  339. fn_fetch_default_config
  340. fn_default_config_remote
  341. fn_set_config_vars
  342. elif [ "${gamename}" == "Starbound" ]; then
  343. gamedirname="Starbound"
  344. array_configs+=( starbound.config )
  345. fn_fetch_default_config
  346. fn_default_config_remote
  347. fn_set_config_vars
  348. elif [ "${gamename}" == "Sven Co-op" ]; then
  349. gamedirname="SvenCoop"
  350. array_configs+=( server.cfg )
  351. fn_fetch_default_config
  352. fn_default_config_remote
  353. fn_set_config_vars
  354. elif [ "${gamename}" == "Team Fortress 2" ]; then
  355. gamedirname="TeamFortress2"
  356. array_configs+=( server.cfg )
  357. fn_fetch_default_config
  358. fn_default_config_remote
  359. fn_set_config_vars
  360. elif [ "${gamename}" == "Team Fortress Classic" ]; then
  361. gamedirname="TeamFortressClassic"
  362. array_configs+=( server.cfg )
  363. fn_fetch_default_config
  364. fn_default_config_remote
  365. fn_set_config_vars
  366. elif [ "${gamename}" == "TeamSpeak 3" ]; then
  367. gamedirname="TeamSpeak3"
  368. array_configs+=( ts3server.ini )
  369. fn_fetch_default_config
  370. fn_default_config_remote
  371. elif [ "${gamename}" == "Teeworlds" ]; then
  372. gamedirname="Teeworlds"
  373. array_configs+=( server.cfg ctf.cfg dm.cfg duel.cfg tdm.cfg )
  374. fn_fetch_default_config
  375. fn_default_config_remote
  376. fn_set_config_vars
  377. elif [ "${gamename}" == "Terraria" ]; then
  378. gamedirname="Terraria"
  379. array_configs+=( serverconfig.txt )
  380. fn_fetch_default_config
  381. fn_default_config_remote
  382. fn_set_config_vars
  383. elif [ "${gamename}" == "Unreal Tournament" ]; then
  384. gamedirname="UnrealTournament"
  385. array_configs+=( Game.ini Engine.ini )
  386. fn_fetch_default_config
  387. fn_default_config_remote
  388. fn_set_config_vars
  389. elif [ "${gamename}" == "Unreal Tournament 2004" ]; then
  390. gamedirname="UnrealTournament2004"
  391. array_configs+=( UT2004.ini )
  392. fn_fetch_default_config
  393. fn_default_config_remote
  394. fn_set_config_vars
  395. elif [ "${gamename}" == "Unreal Tournament 3" ]; then
  396. gamedirname="UnrealTournament3"
  397. array_configs+=( UTGame.ini )
  398. fn_fetch_default_config
  399. fn_default_config_remote
  400. fn_set_config_vars
  401. elif [ "${gamename}" == "Unreal Tournament 99" ]; then
  402. gamedirname="UnrealTournament99"
  403. array_configs+=( Default.ini )
  404. fn_fetch_default_config
  405. fn_default_config_remote
  406. fn_set_config_vars
  407. elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
  408. gamedirname="WolfensteinEnemyTerritory"
  409. array_configs+=( server.cfg )
  410. fn_fetch_default_config
  411. fn_default_config_remote
  412. fn_set_config_vars
  413. fi