core_modules.sh 12 KB

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