install_config.sh 13 KB

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