core_functions.sh 12 KB

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