install_config.sh 12 KB

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