install_config.sh 11 KB

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