4
0

install_config.sh 11 KB

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