core_functions.sh 12 KB

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