core_functions.sh 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750
  1. #!/bin/bash
  2. # LinuxGSM core_functions.sh function
  3. # Author: Daniel Gibbs
  4. # Website: https://linuxgsm.com
  5. # Description: Defines all functions to allow download and execution of functions using fn_fetch_function.
  6. # This function is called first before any other function. Without this file other functions will not load.
  7. functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
  8. modulesversion="v20.3.1"
  9. # Core
  10. core_dl.sh(){
  11. functionfile="${FUNCNAME[0]}"
  12. if [ "$(type fn_fetch_core_dl 2>/dev/null)" ]; then
  13. fn_fetch_core_dl "lgsm/functions" "core_dl.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nomd5"
  14. else
  15. fn_bootstrap_fetch_file_github "lgsm/functions" "core_dl.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nomd5"
  16. fi
  17. }
  18. core_messages.sh(){
  19. functionfile="${FUNCNAME[0]}"
  20. if [ "$(type fn_fetch_core_dl 2>/dev/null)" ]; then
  21. fn_fetch_core_dl "lgsm/functions" "core_messages.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nomd5"
  22. else
  23. fn_bootstrap_fetch_file_github "lgsm/functions" "core_messages.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nomd5"
  24. fi
  25. }
  26. core_legacy.sh(){
  27. functionfile="${FUNCNAME[0]}"
  28. if [ "$(type fn_fetch_core_dl 2>/dev/null)" ]; then
  29. fn_fetch_core_dl "lgsm/functions" "core_legacy.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nomd5"
  30. else
  31. fn_bootstrap_fetch_file_github "lgsm/functions" "core_legacy.sh" "${functionsdir}" "chmodx" "run" "noforcedl" "nomd5"
  32. fi
  33. }
  34. core_exit.sh(){
  35. functionfile="${FUNCNAME[0]}"
  36. fn_fetch_function
  37. }
  38. core_getopt.sh(){
  39. functionfile="${FUNCNAME[0]}"
  40. fn_fetch_function
  41. }
  42. core_trap.sh(){
  43. functionfile="${FUNCNAME[0]}"
  44. fn_fetch_function
  45. }
  46. # Commands
  47. command_backup.sh(){
  48. functionfile="${FUNCNAME[0]}"
  49. fn_fetch_function
  50. }
  51. command_console.sh(){
  52. functionfile="${FUNCNAME[0]}"
  53. fn_fetch_function
  54. }
  55. command_debug.sh(){
  56. functionfile="${FUNCNAME[0]}"
  57. fn_fetch_function
  58. }
  59. command_details.sh(){
  60. functionfile="${FUNCNAME[0]}"
  61. fn_fetch_function
  62. }
  63. command_donate.sh(){
  64. functionfile="${FUNCNAME[0]}"
  65. fn_fetch_function
  66. }
  67. command_postdetails.sh(){
  68. functionfile="${FUNCNAME[0]}"
  69. fn_fetch_function
  70. }
  71. command_test_alert.sh(){
  72. functionfile="${FUNCNAME[0]}"
  73. fn_fetch_function
  74. }
  75. command_monitor.sh(){
  76. functionfile="${FUNCNAME[0]}"
  77. fn_fetch_function
  78. }
  79. command_start.sh(){
  80. functionfile="${FUNCNAME[0]}"
  81. fn_fetch_function
  82. }
  83. command_stop.sh(){
  84. functionfile="${FUNCNAME[0]}"
  85. fn_fetch_function
  86. }
  87. command_validate.sh(){
  88. functionfile="${FUNCNAME[0]}"
  89. fn_fetch_function
  90. }
  91. command_install.sh(){
  92. functionfile="${FUNCNAME[0]}"
  93. fn_fetch_function
  94. }
  95. command_install_resources_mta.sh(){
  96. functionfile="${FUNCNAME[0]}"
  97. fn_fetch_function
  98. }
  99. install_squad_license.sh(){
  100. functionfile="${FUNCNAME[0]}"
  101. fn_fetch_function
  102. }
  103. command_mods_install.sh(){
  104. functionfile="${FUNCNAME[0]}"
  105. fn_fetch_function
  106. }
  107. command_mods_update.sh(){
  108. functionfile="${FUNCNAME[0]}"
  109. fn_fetch_function
  110. }
  111. command_mods_remove.sh(){
  112. functionfile="${FUNCNAME[0]}"
  113. fn_fetch_function
  114. }
  115. command_fastdl.sh(){
  116. functionfile="${FUNCNAME[0]}"
  117. fn_fetch_function
  118. }
  119. command_ts3_server_pass.sh(){
  120. functionfile="${FUNCNAME[0]}"
  121. fn_fetch_function
  122. }
  123. command_restart.sh(){
  124. functionfile="${FUNCNAME[0]}"
  125. fn_fetch_function
  126. }
  127. command_wipe.sh(){
  128. functionfile="${FUNCNAME[0]}"
  129. fn_fetch_function
  130. }
  131. # Checks
  132. check.sh(){
  133. functionfile="${FUNCNAME[0]}"
  134. fn_fetch_function
  135. }
  136. check_config.sh(){
  137. functionfile="${FUNCNAME[0]}"
  138. fn_fetch_function
  139. }
  140. check_deps.sh(){
  141. functionfile="${FUNCNAME[0]}"
  142. fn_fetch_function
  143. }
  144. check_executable.sh(){
  145. functionfile="${FUNCNAME[0]}"
  146. fn_fetch_function
  147. }
  148. check_glibc.sh(){
  149. functionfile="${FUNCNAME[0]}"
  150. fn_fetch_function
  151. }
  152. check_ip.sh(){
  153. functionfile="${FUNCNAME[0]}"
  154. fn_fetch_function
  155. }
  156. check_last_update.sh(){
  157. functionfile="${FUNCNAME[0]}"
  158. fn_fetch_function
  159. }
  160. check_logs.sh(){
  161. functionfile="${FUNCNAME[0]}"
  162. fn_fetch_function
  163. }
  164. check_permissions.sh(){
  165. functionfile="${FUNCNAME[0]}"
  166. fn_fetch_function
  167. }
  168. check_root.sh(){
  169. functionfile="${FUNCNAME[0]}"
  170. fn_fetch_function
  171. }
  172. check_status.sh(){
  173. functionfile="${FUNCNAME[0]}"
  174. fn_fetch_function
  175. }
  176. check_steamcmd.sh(){
  177. functionfile="${FUNCNAME[0]}"
  178. fn_fetch_function
  179. }
  180. check_system_dir.sh(){
  181. functionfile="${FUNCNAME[0]}"
  182. fn_fetch_function
  183. }
  184. check_system_requirements.sh(){
  185. functionfile="${FUNCNAME[0]}"
  186. fn_fetch_function
  187. }
  188. check_tmuxception.sh(){
  189. functionfile="${FUNCNAME[0]}"
  190. fn_fetch_function
  191. }
  192. check_version.sh(){
  193. functionfile="${FUNCNAME[0]}"
  194. fn_fetch_function
  195. }
  196. # Compress
  197. compress_unreal2_maps.sh(){
  198. functionfile="${FUNCNAME[0]}"
  199. fn_fetch_function
  200. }
  201. compress_ut99_maps.sh(){
  202. functionfile="${FUNCNAME[0]}"
  203. fn_fetch_function
  204. }
  205. # Mods
  206. mods_list.sh(){
  207. functionfile="${FUNCNAME[0]}"
  208. fn_fetch_function
  209. }
  210. mods_core.sh(){
  211. functionfile="${FUNCNAME[0]}"
  212. fn_fetch_function
  213. }
  214. # Dev
  215. command_dev_clear_functions.sh(){
  216. functionfile="${FUNCNAME[0]}"
  217. fn_fetch_function
  218. }
  219. command_dev_debug.sh(){
  220. functionfile="${FUNCNAME[0]}"
  221. fn_fetch_function
  222. }
  223. command_dev_detect_deps.sh(){
  224. functionfile="${FUNCNAME[0]}"
  225. fn_fetch_function
  226. }
  227. command_dev_detect_glibc.sh(){
  228. functionfile="${FUNCNAME[0]}"
  229. fn_fetch_function
  230. }
  231. command_dev_detect_ldd.sh(){
  232. functionfile="${FUNCNAME[0]}"
  233. fn_fetch_function
  234. }
  235. command_dev_query_raw.sh(){
  236. functionfile="${FUNCNAME[0]}"
  237. fn_fetch_function
  238. }
  239. # Fix
  240. fix.sh(){
  241. functionfile="${FUNCNAME[0]}"
  242. fn_fetch_function
  243. }
  244. fix_ark.sh(){
  245. functionfile="${FUNCNAME[0]}"
  246. fn_fetch_function
  247. }
  248. fix_av.sh(){
  249. functionfile="${FUNCNAME[0]}"
  250. fn_fetch_function
  251. }
  252. fix_arma3.sh(){
  253. functionfile="${FUNCNAME[0]}"
  254. fn_fetch_function
  255. }
  256. fix_cmw.sh(){
  257. functionfile="${FUNCNAME[0]}"
  258. fn_fetch_function
  259. }
  260. fix_csgo.sh(){
  261. functionfile="${FUNCNAME[0]}"
  262. fn_fetch_function
  263. }
  264. fix_dst.sh(){
  265. functionfile="${FUNCNAME[0]}"
  266. fn_fetch_function
  267. }
  268. fix_ges.sh(){
  269. functionfile="${FUNCNAME[0]}"
  270. fn_fetch_function
  271. }
  272. fix_hw.sh(){
  273. functionfile="${FUNCNAME[0]}"
  274. fn_fetch_function
  275. }
  276. fix_ins.sh(){
  277. functionfile="${FUNCNAME[0]}"
  278. fn_fetch_function
  279. }
  280. fix_kf.sh(){
  281. functionfile="${FUNCNAME[0]}"
  282. fn_fetch_function
  283. }
  284. fix_kf2.sh(){
  285. functionfile="${FUNCNAME[0]}"
  286. fn_fetch_function
  287. }
  288. fix_mcb.sh(){
  289. functionfile="${FUNCNAME[0]}"
  290. fn_fetch_function
  291. }
  292. fix_mta.sh(){
  293. functionfile="${FUNCNAME[0]}"
  294. fn_fetch_function
  295. }
  296. fix_nmrih.sh(){
  297. functionfile="${FUNCNAME[0]}"
  298. fn_fetch_function
  299. }
  300. fix_onset.sh(){
  301. functionfile="${FUNCNAME[0]}"
  302. fn_fetch_function
  303. }
  304. fix_ro.sh(){
  305. functionfile="${FUNCNAME[0]}"
  306. fn_fetch_function
  307. }
  308. fix_rust.sh(){
  309. functionfile="${FUNCNAME[0]}"
  310. fn_fetch_function
  311. }
  312. fix_rw.sh(){
  313. functionfile="${FUNCNAME[0]}"
  314. fn_fetch_function
  315. }
  316. fix_sfc.sh(){
  317. functionfile="${FUNCNAME[0]}"
  318. fn_fetch_function
  319. }
  320. fix_steamcmd.sh(){
  321. functionfile="${FUNCNAME[0]}"
  322. fn_fetch_function
  323. }
  324. fix_terraria.sh(){
  325. functionfile="${FUNCNAME[0]}"
  326. fn_fetch_function
  327. }
  328. fix_tf2.sh(){
  329. functionfile="${FUNCNAME[0]}"
  330. fn_fetch_function
  331. }
  332. fix_tu.sh(){
  333. functionfile="${FUNCNAME[0]}"
  334. fn_fetch_function
  335. }
  336. fix_ut3.sh(){
  337. functionfile="${FUNCNAME[0]}"
  338. fn_fetch_function
  339. }
  340. fix_rust.sh(){
  341. functionfile="${FUNCNAME[0]}"
  342. fn_fetch_function
  343. }
  344. fix_sdtd.sh(){
  345. functionfile="${FUNCNAME[0]}"
  346. fn_fetch_function
  347. }
  348. fix_sof2.sh(){
  349. functionfile="${FUNCNAME[0]}"
  350. fn_fetch_function
  351. }
  352. fix_ss3.sh(){
  353. functionfile="${FUNCNAME[0]}"
  354. fn_fetch_function
  355. }
  356. fix_ts3.sh(){
  357. functionfile="${FUNCNAME[0]}"
  358. fn_fetch_function
  359. }
  360. fix_ut2k4.sh(){
  361. functionfile="${FUNCNAME[0]}"
  362. fn_fetch_function
  363. }
  364. fix_ut.sh(){
  365. functionfile="${FUNCNAME[0]}"
  366. fn_fetch_function
  367. }
  368. fix_unt.sh(){
  369. functionfile="${FUNCNAME[0]}"
  370. fn_fetch_function
  371. }
  372. fix_wurm.sh(){
  373. functionfile="${FUNCNAME[0]}"
  374. fn_fetch_function
  375. }
  376. fix_zmr.sh(){
  377. functionfile="${FUNCNAME[0]}"
  378. fn_fetch_function
  379. }
  380. # Info
  381. info_stats.sh(){
  382. functionfile="${FUNCNAME[0]}"
  383. fn_fetch_function
  384. }
  385. info_config.sh(){
  386. functionfile="${FUNCNAME[0]}"
  387. fn_fetch_function
  388. }
  389. info_distro.sh(){
  390. functionfile="${FUNCNAME[0]}"
  391. fn_fetch_function
  392. }
  393. info_gamedig.sh(){
  394. functionfile="${FUNCNAME[0]}"
  395. fn_fetch_function
  396. }
  397. info_messages.sh(){
  398. functionfile="${FUNCNAME[0]}"
  399. fn_fetch_function
  400. }
  401. info_parms.sh(){
  402. functionfile="${FUNCNAME[0]}"
  403. fn_fetch_function
  404. }
  405. # Alert
  406. alert.sh(){
  407. functionfile="${FUNCNAME[0]}"
  408. fn_fetch_function
  409. }
  410. alert_discord.sh(){
  411. functionfile="${FUNCNAME[0]}"
  412. fn_fetch_function
  413. }
  414. alert_email.sh(){
  415. functionfile="${FUNCNAME[0]}"
  416. fn_fetch_function
  417. }
  418. alert_ifttt.sh(){
  419. functionfile="${FUNCNAME[0]}"
  420. fn_fetch_function
  421. }
  422. alert_mailgun.sh(){
  423. functionfile="${FUNCNAME[0]}"
  424. fn_fetch_function
  425. }
  426. alert_pushbullet.sh(){
  427. functionfile="${FUNCNAME[0]}"
  428. fn_fetch_function
  429. }
  430. alert_pushover.sh(){
  431. functionfile="${FUNCNAME[0]}"
  432. fn_fetch_function
  433. }
  434. alert_telegram.sh(){
  435. functionfile="${FUNCNAME[0]}"
  436. fn_fetch_function
  437. }
  438. alert_slack.sh(){
  439. functionfile="${FUNCNAME[0]}"
  440. fn_fetch_function
  441. }
  442. # Logs
  443. core_logs.sh(){
  444. functionfile="${FUNCNAME[0]}"
  445. fn_fetch_function
  446. }
  447. # Query
  448. query_gamedig.sh(){
  449. functionfile="${FUNCNAME[0]}"
  450. fn_fetch_function
  451. }
  452. # Update
  453. command_update_functions.sh(){
  454. functionfile="${FUNCNAME[0]}"
  455. fn_fetch_function
  456. }
  457. command_update_linuxgsm.sh(){
  458. functionfile="${FUNCNAME[0]}"
  459. fn_fetch_function
  460. }
  461. command_update.sh(){
  462. functionfile="${FUNCNAME[0]}"
  463. fn_fetch_function
  464. }
  465. update_ts3.sh(){
  466. functionfile="${FUNCNAME[0]}"
  467. fn_fetch_function
  468. }
  469. update_minecraft.sh(){
  470. functionfile="${FUNCNAME[0]}"
  471. fn_fetch_function
  472. }
  473. update_minecraft_bedrock.sh(){
  474. functionfile="${FUNCNAME[0]}"
  475. fn_fetch_function
  476. }
  477. update_mumble.sh(){
  478. functionfile="${FUNCNAME[0]}"
  479. fn_fetch_function
  480. }
  481. update_mta.sh(){
  482. functionfile="${FUNCNAME[0]}"
  483. fn_fetch_function
  484. }
  485. update_factorio.sh(){
  486. functionfile="${FUNCNAME[0]}"
  487. fn_fetch_function
  488. }
  489. update_steamcmd.sh(){
  490. functionfile="${FUNCNAME[0]}"
  491. fn_fetch_function
  492. }
  493. fn_update_functions.sh(){
  494. functionfile="${FUNCNAME[0]}"
  495. fn_fetch_function
  496. }
  497. #
  498. ## Installer functions
  499. #
  500. fn_autoinstall(){
  501. autoinstall=1
  502. command_install.sh
  503. }
  504. install_complete.sh(){
  505. functionfile="${FUNCNAME[0]}"
  506. fn_fetch_function
  507. }
  508. install_config.sh(){
  509. functionfile="${FUNCNAME[0]}"
  510. fn_fetch_function
  511. }
  512. install_factorio_save.sh(){
  513. functionfile="${FUNCNAME[0]}"
  514. fn_fetch_function
  515. }
  516. install_dst_token.sh(){
  517. functionfile="${FUNCNAME[0]}"
  518. fn_fetch_function
  519. }
  520. install_eula.sh(){
  521. functionfile="${FUNCNAME[0]}"
  522. fn_fetch_function
  523. }
  524. install_gsquery.sh(){
  525. functionfile="${FUNCNAME[0]}"
  526. fn_fetch_function
  527. }
  528. install_gslt.sh(){
  529. functionfile="${FUNCNAME[0]}"
  530. fn_fetch_function
  531. }
  532. install_header.sh(){
  533. functionfile="${FUNCNAME[0]}"
  534. fn_fetch_function
  535. }
  536. install_logs.sh(){
  537. functionfile="${FUNCNAME[0]}"
  538. fn_fetch_function
  539. }
  540. install_retry.sh(){
  541. functionfile="${FUNCNAME[0]}"
  542. fn_fetch_function
  543. }
  544. install_server_dir.sh(){
  545. functionfile="${FUNCNAME[0]}"
  546. fn_fetch_function
  547. }
  548. install_server_files.sh(){
  549. functionfile="${FUNCNAME[0]}"
  550. fn_fetch_function
  551. }
  552. install_stats.sh(){
  553. functionfile="${FUNCNAME[0]}"
  554. fn_fetch_function
  555. }
  556. install_steamcmd.sh(){
  557. functionfile="${FUNCNAME[0]}"
  558. fn_fetch_function
  559. }
  560. install_ts3.sh(){
  561. functionfile="${FUNCNAME[0]}"
  562. fn_fetch_function
  563. }
  564. install_ts3db.sh(){
  565. functionfile="${FUNCNAME[0]}"
  566. fn_fetch_function
  567. }
  568. install_ut2k4.sh(){
  569. functionfile="${FUNCNAME[0]}"
  570. fn_fetch_function
  571. }
  572. install_dl_ut2k4.sh(){
  573. functionfile="${FUNCNAME[0]}"
  574. fn_fetch_function
  575. }
  576. install_ut2k4_key.sh(){
  577. functionfile="${FUNCNAME[0]}"
  578. fn_fetch_function
  579. }
  580. # Calls code required for legacy servers
  581. core_legacy.sh
  582. # Creates tmp dir if missing
  583. if [ ! -d "${tmpdir}" ]; then
  584. mkdir -p "${tmpdir}"
  585. fi
  586. # Creates lock dir if missing
  587. if [ ! -d "${lockdir}" ]; then
  588. mkdir -p "${lockdir}"
  589. fi
  590. # Calls on-screen messages (bootstrap)
  591. core_messages.sh
  592. #Calls file downloader (bootstrap)
  593. core_dl.sh
  594. # Calls the global Ctrl-C trap
  595. core_trap.sh