Browse Source

Merge remote-tracking branch 'origin/develop' into develop

pull/1915/head
UltimateByte 7 years ago
parent
commit
3882ab51d4
  1. 15
      .github/request-info.yml
  2. 15
      .github/support.yml
  3. 21
      .github/welcome.yml
  4. 15
      .travis.yml
  5. 4
      CONTRIBUTING.md
  6. 17
      ISSUE_TEMPLATE.md
  7. 2
      README.md
  8. BIN
      images/icons/centos-icon-32.png
  9. BIN
      images/icons/debian-icon-32.png
  10. BIN
      images/icons/ubuntu-icon-32.png
  11. 3
      images/logo/README.md
  12. BIN
      images/logo/apple-touch-icon-precomposed.png
  13. BIN
      images/logo/assets/lgsm-font-pt_sans.zip
  14. BIN
      images/logo/assets/lgsm-font-source_code_pro.zip
  15. 238
      images/logo/assets/svg/linuxgsm_black_gradiant_vector.svg
  16. 304
      images/logo/assets/svg/linuxgsm_black_gradiant_vector_full.svg
  17. 286
      images/logo/assets/svg/linuxgsm_black_vector.svg
  18. 248
      images/logo/assets/svg/linuxgsm_white_vector.svg
  19. 324
      images/logo/assets/svg/linuxgsm_white_vector_full.svg
  20. BIN
      images/logo/facebook.png
  21. BIN
      images/logo/lgsm-dark-full.png
  22. BIN
      images/logo/lgsm-dark-square-114.png
  23. BIN
      images/logo/lgsm-dark-square-16.png
  24. BIN
      images/logo/lgsm-dark-square-184.png
  25. BIN
      images/logo/lgsm-dark-square-24.png
  26. BIN
      images/logo/lgsm-dark-square-512.png
  27. BIN
      images/logo/lgsm-dark-square-64.png
  28. BIN
      images/logo/lgsm-light-full.png
  29. BIN
      images/logo/lgsm_full.png
  30. BIN
      images/logo/lgsmbutton.png
  31. BIN
      images/wallpaper/LinuxGSM_wallpaper.png
  32. BIN
      images/wallpaper/LinuxGSM_wallpaper_2.png
  33. 2
      lgsm/config-default/config-lgsm/bb2server/_default.cfg
  34. 118
      lgsm/config-default/config-lgsm/bdserver/_default.cfg
  35. 2
      lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
  36. 2
      lgsm/config-default/config-lgsm/boserver/_default.cfg
  37. 120
      lgsm/config-default/config-lgsm/bt1944server/_default.cfg
  38. 2
      lgsm/config-default/config-lgsm/csgoserver/_default.cfg
  39. 2
      lgsm/config-default/config-lgsm/cssserver/_default.cfg
  40. 2
      lgsm/config-default/config-lgsm/emserver/_default.cfg
  41. 104
      lgsm/config-default/config-lgsm/etlserver/_default.cfg
  42. 2
      lgsm/config-default/config-lgsm/gmodserver/_default.cfg
  43. 2
      lgsm/config-default/config-lgsm/insserver/_default.cfg
  44. 2
      lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
  45. 12
      lgsm/config-default/config-lgsm/rustserver/_default.cfg
  46. 118
      lgsm/config-default/config-lgsm/rwserver/_default.cfg
  47. 2
      lgsm/config-default/config-lgsm/tf2server/_default.cfg
  48. 2
      lgsm/config-default/config-lgsm/tuserver/_default.cfg
  49. 2
      lgsm/config-default/config-lgsm/ut3server/_default.cfg
  50. 2
      lgsm/config-default/config-lgsm/zpsserver/_default.cfg
  51. 4
      lgsm/data/serverlist.csv
  52. 6
      lgsm/functions/alert.sh
  53. 6
      lgsm/functions/alert_discord.sh
  54. 2
      lgsm/functions/alert_email.sh
  55. 4
      lgsm/functions/alert_ifttt.sh
  56. 4
      lgsm/functions/alert_mailgun.sh
  57. 2
      lgsm/functions/alert_pushbullet.sh
  58. 8
      lgsm/functions/alert_pushover.sh
  59. 4
      lgsm/functions/check.sh
  60. 2
      lgsm/functions/check_config.sh
  61. 28
      lgsm/functions/check_deps.sh
  62. 2
      lgsm/functions/check_executable.sh
  63. 4
      lgsm/functions/check_glibc.sh
  64. 24
      lgsm/functions/check_ip.sh
  65. 2
      lgsm/functions/check_logs.sh
  66. 36
      lgsm/functions/check_permissions.sh
  67. 4
      lgsm/functions/check_root.sh
  68. 6
      lgsm/functions/check_status.sh
  69. 5
      lgsm/functions/check_steamcmd.sh
  70. 2
      lgsm/functions/check_system_dir.sh
  71. 6
      lgsm/functions/check_system_requirements.sh
  72. 2
      lgsm/functions/check_tmuxception.sh
  73. 30
      lgsm/functions/command_backup.sh
  74. 10
      lgsm/functions/command_console.sh
  75. 14
      lgsm/functions/command_debug.sh
  76. 5
      lgsm/functions/command_details.sh
  77. 14
      lgsm/functions/command_dev_clear_functions.sh
  78. 2
      lgsm/functions/command_dev_debug.sh
  79. 16
      lgsm/functions/command_dev_detect_deps.sh
  80. 16
      lgsm/functions/command_dev_detect_glibc.sh
  81. 18
      lgsm/functions/command_dev_detect_ldd.sh
  82. 44
      lgsm/functions/command_dev_query_raw.sh
  83. 18
      lgsm/functions/command_fastdl.sh
  84. 2
      lgsm/functions/command_install.sh
  85. 2
      lgsm/functions/command_install_resources_mta.sh
  86. 6
      lgsm/functions/command_mods_install.sh
  87. 8
      lgsm/functions/command_mods_remove.sh
  88. 8
      lgsm/functions/command_mods_update.sh
  89. 204
      lgsm/functions/command_monitor.sh
  90. 6
      lgsm/functions/command_postdetails.sh
  91. 2
      lgsm/functions/command_restart.sh
  92. 45
      lgsm/functions/command_start.sh
  93. 36
      lgsm/functions/command_stop.sh
  94. 4
      lgsm/functions/command_test_alert.sh
  95. 8
      lgsm/functions/command_ts3_server_pass.sh
  96. 2
      lgsm/functions/command_update.sh
  97. 2
      lgsm/functions/command_update_functions.sh
  98. 10
      lgsm/functions/command_update_linuxgsm.sh
  99. 14
      lgsm/functions/command_validate.sh
  100. 22
      lgsm/functions/command_wipe.sh

15
.github/request-info.yml

@ -0,0 +1,15 @@
# Configuration for request-info - https://github.com/behaviorbot/request-info
# *Required* Comment to reply with
requestInfoReplyComment: >
We require more information for this issue.
https://linuxgsm.com/support/#guide
# *OPTIONAL* default titles to check against for lack of descriptiveness
# MUST BE ALL LOWERCASE
#requestInfoDefaultTitles:
# - update readme.md
# - updates
# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given
requestInfoLabelToAdd: Status: needs more info

15
.github/support.yml

@ -0,0 +1,15 @@
# Configuration for support-requests - https://github.com/dessant/support-requests
# Label used to mark issues as support requests
supportLabel: Type: support
# Comment to post on issues marked as support requests. Add a link
# to a support page, or set to `false` to disable
supportComment: >
We use the issue tracker exclusively for bug reports and feature requests.
However, this issue appears to be a support request. Please use our
support channels to get help with the project.
https://linuxgsm.com/support/
# Whether to close issues marked as support requests
close: true
# Whether to lock issues marked as support requests
lock: false

21
.github/welcome.yml

@ -0,0 +1,21 @@
# Configuration for welcome - https://github.com/behaviorbot/welcome
# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome
# Comment to be posted to on first time issues
newIssueWelcomeComment: >
Thanks for opening your first issue. Be sure to follow the issue template! and guide for posting. https://linuxgsm.com/support/#guide
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
# Comment to be posted to on PRs from first time contributors in your repository
newPRWelcomeComment: >
Thanks for opening this pull request! Please check out our contributing guidelines.
# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge
# Comment to be posted to on pull requests merged by a first time user
firstPRMergeComment: >
Congrats on merging your first pull request! Thank you for supporting LinuxGSM!
# It is recommend to include as many gifs and emojis as possible

15
.travis.yml

@ -30,8 +30,15 @@ addons:
- libstdc++6:i386
- net-tools
- iproute2
- shellcheck
script:
- bash tests/tests_jc2server.sh
- bash tests/tests_ts3server.sh
jobs:
include:
- stage: jobs
script: bash tests/tests_jc2server.sh
- # stage name not required
script: bash tests/tests_fctrserver.sh
- # stage name not required
script: bash tests/tests_ts3server.sh
- # stage name not required
script: bash tests/tests_shellcheck.sh

4
CONTRIBUTING.md

@ -2,7 +2,7 @@
We are really glad you're reading this, because if you are then you have shown an interest in helping make LinuxGSM great.
If you haven't already, come find us on [Discord](https://gameservermanagers.com/discord). From there you will have contact with other contributers of the project. We want you working on things you're excited about.
If you haven't already, come find us on [Discord](https://linuxgsm.com/discord). From there you will have contact with other contributers of the project. We want you working on things you're excited about.
Before working on a project we recommend that you create a issue in regards to the issue/feature. This will prevent duplicates while you work on the feature. If an issue already exists, make note that you are working on it so nobody else wastes their time working on the same project at the same time!
@ -36,4 +36,4 @@ This will help us in understanding your code and determining where problems may
Start reading our code and you'll get the hang of it. Explore how functions are organized and you'll see how we strive for readable code.
Please give the following document a read and adjust your code according to its specifications.
[Syntax & Coding Conventions](https://github.com/GameServerManagers/LinuxGSM/wiki/Syntax-&-Conventions)
[Syntax & Coding Conventions](https://github.com/GameServerManagers/LinuxGSM/wiki/Syntax-and-Conventions)

17
ISSUE_TEMPLATE.md

@ -1,8 +1,17 @@
Please select the "Preview" tab above to view this message correctly.
Please note that this is an issue tracker for **LinuxGSM** related bugs and feature requests and **not** for the games themselves.
Follow **[this guide](https://linuxgsm.com/support/#guide)** to make sure you post the correct info.
For general support visit the **[steam group](https://linuxgsm.com/steam)**
**Therefore personal server issues on GitHub will be closed without a kiss.**
GitHub is **ONLY** for:
* LinuxGSM bugs
* feature suggestions
* code contributions
Please follow **[this article](https://github.com/GameServerManagers/LinuxGSM/wiki/Support)** for optimal assistance
and do not forget to remove this text before opening the issue.
GitHub is **NOT** for:
* General support
* Specific game server issues (e.g CS:GO, TF2)
* Dedicated server issues (e.g Ubuntu, CentOS)
* Anything not directly related to LinuxGSM development
**Any general support issues on GitHub will be closed.**

2
README.md

@ -2,7 +2,7 @@
[![LinuxGSM](https://img.shields.io/badge/-LinuxGSM-2b2b2b.svg?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACsAAABACAYAAACDbo5ZAAAGD0lEQVR4AcWYa2wUVRvHz75c2vJ2disXoUBEVIioRAx%2BMIFA1IRwUS6KCCiIKBrvhEYiiGm5iBgk8QOGEgUUDYTttmVZWFr2UmwURS6iYAoCtmisElSsdHdbkT7%2BTzoNy%2BGc2dm54C%2F5Rdkz85x%2FZ86ZOXOYXYhIg3Phx%2FA4PAcv6f%2Btg5vhHJjP3EcZsgsshufJHH%2FAJbDztQ7aG35J1vgCXn%2BtgvrgEbLHYei9FmE3kDOUuh10OGwjZ7gEh7kZ9gNyllK3gnrg7%2BQs56DHjbCDyB0GuRF2ArnDeDfCziF3mO1G2FfJHRa4EXYpuUOxG2GXkzuUuBH2TXKH5W6ELSV3eM%2BNsOUk5yQcAY8p2uvgSPitor3MjbB1UOQXOFBvHwpbhPYWOExvL4SNUOQ7p4P2JTlzhOPmCu0vCu1PQpE2WOhk2MdJjk9y7HNwP1wEPUJbAcmZ6WTYrYolnifbxZBiibnFySHQCkUaLdY7C0V4%2FT5OhF1JcuIW6%2B0lOcvsBi2Ezao3j8Ov7Quwj52w60jNKIs1R5GatVaDDoEXSU4D7GSxbidYT3IuwjusFK0mNUVMwaZNNbl%2B%2F87hoVCom0HthaQmnG3QB0lNPcxlCvz%2B0GtlZTuorCxYYlA%2FDzbY%2FnrAgV3hCVLzCDMgEAi9wMMi9IIM%2FUwnNXWwi5mwRaSmmmXA798xq%2F3Khp420VeE1LyS6eQeBhttSXgzywCCToIUCOyYZvKLOWWwkdfd6ORVpGYJM0F5efDe9mEQHGty2BWTmhVGO4PNBmOoKzMBxmo%2FhD25dWvljSbD5hjMkb9gT9lJq63Mzi1bKkbjloc7xBWtwiRrDASCVRi%2FRxA8if%2BvrawMTzYI%2FACpeUv2KFFtDcUyTKilCHcis8G1Ga7wHpLzG8wVFs1K7jaeUKHZfIxmkj9%2FM4S9x9RGiMEudo0QbCVu9Xqn5PWEwLUk5%2FP0iaXac53I0kAH9Sau4m54lo%2FdTMfyekLYKQZ7ub34AbMMlmw5irC2VYTN0fuVMYMf8JHxJ7L7YYXAlSRnI2%2F8RtH4siTsDMz%2BZ5yS15OEXUxyDjGD1%2BvEq8MG16CDzY6JepKwT6geYbzxb0XjGMl7vwGSgzZIwo4nOa1M8Yr9Afb%2Fj8L21%2FsXaeaNZ2A6KTiEASph%2F0vF80cn4tokqu79fzfCUk2vfF4%2FFdFGEjGPHvg2yWrsDG%2F4%2BqpZB8jPOiXjWk0y5iXdM3XhKUvxBTA9UvHuvNPh%2Bzb%2BWj10z6nwuHWBbQFMvNCjKnn7qd1jS%2Fnx9VX3b6jC%2BbwOr5eMe3%2B83IcW4%2F3qgT%2BUTbA9srGaiHsn8AKiF6Ld%2FxF%2FOx6eeAJXabvK78MTTornNMd6XJTVR7%2Fj9bBjhFxV%2FMc1kJOAy2AeA%2FgrV4mFVDZFCqm8rEJ6qysCAWqK9iaztRJRbWXa4moFTELOav7jY%2FqAvoXp0Gc9NX7bIZl17%2FZl0rC1wRLeno0NvP%2B0CTcYNnS8wW6CtzNANaxzKqo9hRNOQ8rGo7tmSsMe2zWdt2frqVRcm5s2fofCgawDNHRNxnyfqgsYez4y4ADCjRM9H73hsNWafILTQdaFiSTj%2BQ%2FxA6yH7d%2BCmR8XbYr0a7VTF2N4siSsb5qdos3R6%2FjGxpULFfw7EfORnbrI9TAToX0sD40%2F2ylcGdh2Rdhg%2BSf2gka9jRTqK9%2BGwgHz7RTfVbHxirDhivdthYUvMRX8aYAD9lstvi%2B0aDL2DUZ0eCBUNNVG0IP65FLTWqPdiqdC0koHTVXe7iyNRG23QotBEy1RbTAzQyrmnYUT2rLsoA13JpcB4eVC2daBM1g2JGLekmwf5On7EJfngfZTNnVSce8bFjaTmQdvs%2FXmO%2FJVpoXdx3RSUe9O00Fj3nUdy0RLgRHiHXOPGW1h2uKZ07c9rG%2Bxyefp23pQeyBIEQoavYlakrG8fnrY5yHn2fbxXzAgw7m8bT5zkkSk4C7cpmOK21esB%2FXAQ5DzFfTo43%2BF%2FDzf0eZ4wZ3MDSjMcvD6nIeOahGgia%2FyU3HforTPkWkwnakdn0cI9jqfbPjD%2FuQLJr6644snlgX%2FApOMoyd1R5%2FxAAAAAElFTkSuQmCC)](https://linuxgsm.com)
[![Build Status](https://travis-ci.org/GameServerManagers/LinuxGSM.svg?branch=master)](https://travis-ci.org/GameServerManagers/LinuxGSM)
[![Under Development](https://badge.waffle.io/GameServerManagers/LinuxGSM.svg?label=Under%20Development&title=Under%20Development)](http://waffle.io/GameServerManagers/LinuxGSM)
[![Under Development](https://badge.waffle.io/GameServerManagers/LinuxGSM.svg?label=Status:%20under%20development&title=Under%20Development)](http://waffle.io/GameServerManagers/LinuxGSM)
[![Discord](https://discordapp.com/api/guilds/127498813903601664/widget.png?style=shield)](https://linuxgsm.com/discord)
[![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://github.com/GameServerManagers/LinuxGSM/blob/master/LICENSE)
[![made-with-bash](https://img.shields.io/badge/-Made%20with%20Bash-1f425f.svg?logo=image%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE3MDg2QTAyQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE3MDg2QTAzQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTcwODZBMDBBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTcwODZBMDFBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciLz4gPC9yZGY6RGVzY3JpcHRpb24%2BIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2BIDw%2FeHBhY2tldCBlbmQ9InIiPz6lm45hAAADkklEQVR42qyVa0yTVxzGn7d9Wy03MS2ii8s%2BeokYNQSVhCzOjXZOFNF4jx%2BMRmPUMEUEqVG36jo2thizLSQSMd4N8ZoQ8RKjJtooaCpK6ZoCtRXKpRempbTv5ey83bhkAUphz8fznvP8znn%2B%2F3NeEEJgNBoRRSmz0ub%2FfuxEacBg%2FDmYtiCjgo5NG2mBXq%2BH5I1ogMRk9Zbd%2BQU2e1ML6VPLOyf5tvBQ8yT1lG10imxsABm7SLs898GTpyYynEzP60hO3trHDKvMigUwdeaceacqzp7nOI4n0SSIIjl36ao4Z356OV07fSQAk6xJ3XGg%2BLCr1d1OYlVHp4eUHPnerU79ZA%2F1kuv1JQMAg%2BE4O2P23EumF3VkvHprsZKMzKwbRUXFEyTvSIEmTVbrysp%2BWr8wfQHGK6WChVa3bKUmdWou%2BjpArdGkzZ41c1zG%2Fu5uGH4swzd561F%2BuhIT4%2BLnSuPsv9%2BJKIpjNr9dXYOyk7%2FBZrcjIT4eCnoKgedJP4BEqhG77E3NKP31FO7cfQA5K0dSYuLgz2TwCWJSOBzG6crzKK%2BohNfni%2Bx6OMUMMNe%2Fgf7ocbw0v0acKg6J8Ql0q%2BT%2FAXR5PNi5dz9c71upuQqCKFAD%2BYhrZLEAmpodaHO3Qy6TI3NhBpbrshGtOWKOSMYwYGQM8nJzoFJNxP2HjyIQho4PewK6hBktoDcUwtIln4PjOWzflQ%2Be5yl0yCCYgYikTclGlxadio%2BBQCSiW1UXoVGrKYwH4RgMrjU1HAB4vR6LzWYfFUCKxfS8Ftk5qxHoCUQAUkRJaSEokkV6Y%2F%2BJUOC4hn6A39NVXVBYeNP8piH6HeA4fPbpdBQV5KOx0QaL1YppX3Jgk0TwH2Vg6S3u%2BdB91%2B%2FpuNYPYFl5uP5V7ZqvsrX7jxqMXR6ff3gCQSTzFI0a1TX3wIs8ul%2Bq4HuWAAiM39vhOuR1O1fQ2gT%2F26Z8Z5vrl2OHi9OXZn995nLV9aFfS6UC9JeJPfuK0NBohWpCHMSAAsFe74WWP%2BvT25wtP9Bpob6uGqqyDnOtaeumjRu%2ByFu36VntK%2FPA5umTJeUtPWZSU9BCgud661odVp3DZtkc7AnYR33RRC708PrVi1larW7XwZIjLnd7R6SgSqWSNjU1B3F72pz5TZbXmX5vV81Yb7Lg7XT%2FUXriu8XLVqw6c6XqWnBKiiYU%2BMt3wWF7u7i91XlSEITwSAZ%2FCzAAHsJVbwXYFFEAAAAASUVORK5CYII%3D)](https://www.gnu.org/software/bash/)

BIN
images/icons/centos-icon-32.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

BIN
images/icons/debian-icon-32.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

BIN
images/icons/ubuntu-icon-32.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

3
images/logo/README.md

@ -1,3 +0,0 @@
# LinuxGSM - Official Logos
For Reference the original design can be found here.
http://twolofbees.com/artwork.php?iid=870

BIN
images/logo/apple-touch-icon-precomposed.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

BIN
images/logo/assets/lgsm-font-pt_sans.zip

Binary file not shown.

BIN
images/logo/assets/lgsm-font-source_code_pro.zip

Binary file not shown.

238
images/logo/assets/svg/linuxgsm_black_gradiant_vector.svg

@ -1,238 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="550.72363"
height="829.10431"
id="svg4312"
version="1.1"
inkscape:version="0.92.1 r15371"
sodipodi:docname="lgsm_vecto_s.svg">
<title
id="title5291">Stycil Tux</title>
<defs
id="defs4314">
<linearGradient
id="linearGradient3910-6-0-8-7-7-8">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-7-4" />
<stop
style="stop-color:#4c4c4c;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-6-9" />
</linearGradient>
<linearGradient
y2="497.71365"
x2="140.00095"
y1="230.00362"
x1="140.00095"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
gradientUnits="userSpaceOnUse"
id="linearGradient4970"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient3910-6-0-8-7-81">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-5" />
<stop
style="stop-color:#a6a6a6;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-64" />
</linearGradient>
<linearGradient
id="linearGradient4565-3">
<stop
style="stop-color:#939393;stop-opacity:1;"
offset="0"
id="stop4567-1" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop4569-9" />
</linearGradient>
<linearGradient
id="linearGradient4617-7">
<stop
id="stop4619-9"
offset="0"
style="stop-color:#ffffff;stop-opacity:0;" />
<stop
id="stop4621-5"
offset="1"
style="stop-color:#a6a6a6;stop-opacity:0.5" />
</linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath4719-2">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
id="rect4721-4"
width="1352.3417"
height="1135.7903"
x="-490.55533"
y="-358.505" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
id="linearGradient5197"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
x1="140.00095"
y1="230.00362"
x2="140.00095"
y2="497.71365" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
id="linearGradient5427"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
x1="140.00095"
y1="230.00362"
x2="140.00095"
y2="497.71365" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.25"
inkscape:cx="89.228893"
inkscape:cy="462.02473"
inkscape:document-units="px"
inkscape:current-layer="g6064"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata4317">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Stycil Tux</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Cheeseness (Josh Bush)</dc:title>
</cc:Agent>
</dc:creator>
<dc:subject>
<rdf:Bag>
<rdf:li>tux linux icon</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
http://en.wikipedia.org/wiki/Tux
You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
[email protected]</dc:description>
<dc:date>2012-01-02</dc:date>
<cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
<dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
<dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="g6064"
transform="translate(56.568542)"
style="display:inline">
<g
transform="translate(-756.17483,-402.59665)"
id="g5961-3"
style="display:inline">
<g
transform="translate(-452.34937,725.009)"
id="g5391-8-7">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-1-3-9"
d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-9-5-2"
d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-8-9-8"
d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
style="fill:#000000"
transform="translate(-0.90575)"
id="g5258-9-9">
<path
inkscape:connector-curvature="0"
d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path5239-0-4-2" />
</g>
</g>
<path
style="fill:#000000;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
id="path5429-1-9"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
id="path5429-3-7-4" />
<path
style="fill:none;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
id="path5429-7-77-6"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(-55.729306)"
id="g5425"
style="display:inline">
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
id="path4372-7-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccsssccssscccc"
inkscape:label="path4372-7-9" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5427);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
id="path4372-7-91"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

304
images/logo/assets/svg/linuxgsm_black_gradiant_vector_full.svg

@ -1,304 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1710.7236"
height="830.10431"
id="svg4312"
version="1.1"
inkscape:version="0.92.1 r15371"
sodipodi:docname="linuxgsm_black_gradiant_vector_full.svg"
inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\logos\master rasta\linuxgsm_black_gradiant_vector_full.png"
inkscape:export-xdpi="84.68"
inkscape:export-ydpi="84.68">
<title
id="title5291">Stycil Tux</title>
<defs
id="defs4314">
<linearGradient
id="linearGradient3910-6-0-8-7-7-8">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-7-4" />
<stop
style="stop-color:#4c4c4c;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-6-9" />
</linearGradient>
<linearGradient
y2="497.71365"
x2="140.00095"
y1="230.00362"
x1="140.00095"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
gradientUnits="userSpaceOnUse"
id="linearGradient4970"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient3910-6-0-8-7-81">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-5" />
<stop
style="stop-color:#a6a6a6;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-64" />
</linearGradient>
<linearGradient
id="linearGradient4565-3">
<stop
style="stop-color:#939393;stop-opacity:1;"
offset="0"
id="stop4567-1" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop4569-9" />
</linearGradient>
<linearGradient
id="linearGradient4617-7">
<stop
id="stop4619-9"
offset="0"
style="stop-color:#ffffff;stop-opacity:0;" />
<stop
id="stop4621-5"
offset="1"
style="stop-color:#a6a6a6;stop-opacity:0.5" />
</linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath4719-2">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
id="rect4721-4"
width="1352.3417"
height="1135.7903"
x="-490.55533"
y="-358.505" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
id="linearGradient5197"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
x1="140.00095"
y1="230.00362"
x2="140.00095"
y2="497.71365" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
id="linearGradient5427"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
x1="140.00095"
y1="230.00362"
x2="140.00095"
y2="497.71365" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="1228.4325"
inkscape:cy="395.54805"
inkscape:document-units="px"
inkscape:current-layer="svg4312"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:pagecheckerboard="false" />
<metadata
id="metadata4317">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Stycil Tux</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Cheeseness (Josh Bush)</dc:title>
</cc:Agent>
</dc:creator>
<dc:subject>
<rdf:Bag>
<rdf:li>tux linux icon</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
http://en.wikipedia.org/wiki/Tux
You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
[email protected]</dc:description>
<dc:date>2012-01-02</dc:date>
<cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
<dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
<dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1" />
<g
id="g6064"
transform="translate(56.568542,1.0001456)"
style="display:inline">
<g
transform="translate(-756.17483,-402.59665)"
id="g5961-3"
style="display:inline">
<g
transform="translate(-452.34937,725.009)"
id="g5391-8-7">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-1-3-9"
d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-9-5-2"
d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-8-9-8"
d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
style="fill:#000000"
transform="translate(-0.90575)"
id="g5258-9-9">
<path
inkscape:connector-curvature="0"
d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path5239-0-4-2" />
</g>
</g>
<path
style="fill:#000000;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
id="path5429-1-9"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
id="path5429-3-7-4" />
<path
style="fill:none;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
id="path5429-7-77-6"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(-55.729306)"
id="g5425"
style="display:inline">
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
id="path4372-7-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccsssccssscccc"
inkscape:label="path4372-7-9" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5427);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
id="path4372-7-91"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
</g>
<flowRoot
xml:space="preserve"
id="flowRoot4513"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
id="flowRegion4515"><rect
id="rect4517"
width="584"
height="560"
x="532"
y="65.104309" /></flowRegion><flowPara
id="flowPara4519" /></flowRoot> <flowRoot
xml:space="preserve"
id="flowRoot4521"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
id="flowRegion4523"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'"><rect
id="rect4525"
width="476"
height="536"
x="548"
y="81.104309"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'" /></flowRegion><flowPara
id="flowPara4527" /></flowRoot> <text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:169.59358215px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.23983955"
x="429.06406"
y="220.41109"
id="text4531"
transform="scale(1.0093264,0.99075977)"
inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\logos\master rasta\text4531.png"
inkscape:export-xdpi="118.84"
inkscape:export-ydpi="118.84"><tspan
sodipodi:role="line"
id="tspan4529"
x="429.06406"
y="220.41109"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#f6bd0e;fill-opacity:1;stroke-width:4.23983955">Linux</tspan><tspan
sodipodi:role="line"
x="429.06406"
y="487.07776"
id="tspan4535"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';stroke-width:4.23983955"> Game Server</tspan><tspan
sodipodi:role="line"
x="429.06406"
y="753.74445"
id="tspan4537"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';stroke-width:4.23983955"> Managers_</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

286
images/logo/assets/svg/linuxgsm_black_vector.svg

@ -1,286 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="550.72363"
height="829.10431"
id="svg4312"
version="1.1"
inkscape:version="0.92.1 r15371"
sodipodi:docname="linuxgsm_black_vector.svg">
<title
id="title5291">Stycil Tux</title>
<defs
id="defs4314">
<linearGradient
id="linearGradient3910-6-0-8-7-7-8">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-7-4" />
<stop
style="stop-color:#4c4c4c;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-6-9" />
</linearGradient>
<linearGradient
y2="497.71365"
x2="140.00095"
y1="230.00362"
x1="140.00095"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
gradientUnits="userSpaceOnUse"
id="linearGradient4970"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient3910-6-0-8-7-81">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-5" />
<stop
style="stop-color:#a6a6a6;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-64" />
</linearGradient>
<linearGradient
id="linearGradient4565-3">
<stop
style="stop-color:#939393;stop-opacity:1;"
offset="0"
id="stop4567-1" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop4569-9" />
</linearGradient>
<linearGradient
id="linearGradient4617-7">
<stop
id="stop4619-9"
offset="0"
style="stop-color:#ffffff;stop-opacity:0;" />
<stop
id="stop4621-5"
offset="1"
style="stop-color:#a6a6a6;stop-opacity:0.5" />
</linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath4719-2">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
id="rect4721-4"
width="1352.3417"
height="1135.7903"
x="-490.55533"
y="-358.505" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
id="linearGradient5197"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
x1="140.00095"
y1="230.00362"
x2="140.00095"
y2="497.71365" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
id="linearGradient5427"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
x1="140.00095"
y1="230.00362"
x2="140.00095"
y2="497.71365" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="397.59441"
inkscape:cy="382.02473"
inkscape:document-units="px"
inkscape:current-layer="g6064"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata4317">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Stycil Tux</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Cheeseness (Josh Bush)</dc:title>
</cc:Agent>
</dc:creator>
<dc:subject>
<rdf:Bag>
<rdf:li>tux linux icon</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
http://en.wikipedia.org/wiki/Tux
You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
[email protected]</dc:description>
<dc:date>2012-01-02</dc:date>
<cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
<dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
<dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="g6064"
transform="translate(56.568542)"
style="display:inline">
<g
transform="translate(-756.17483,-402.59665)"
id="g5961-3"
style="display:inline">
<g
transform="translate(-452.34937,725.009)"
id="g5391-8-7">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-1-3-9"
d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-9-5-2"
d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-8-9-8"
d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
style="fill:#000000"
transform="translate(-0.90575)"
id="g5258-9-9">
<path
inkscape:connector-curvature="0"
d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path5239-0-4-2" />
</g>
</g>
<path
style="fill:#000000;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
id="path5429-1-9"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
style="fill:#000000;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
id="path5429-3-7-4" />
<path
style="fill:none;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
id="path5429-7-77-6"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(-55.729306)"
id="g5425"
style="display:inline">
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
id="path4372-7-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccsssccssscccc"
inkscape:label="path4372-7-9" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5427);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
id="path4372-7-91"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
</g>
<path
style="fill:#000000;fill-opacity:1"
d="m 114.59441,283.23565 c 0,-0.24417 1.59959,-4.40667 3.55464,-9.25 3.63491,-9.00495 9.23801,-27.28845 11.96125,-39.03081 3.90844,-16.85289 4.64856,-25.10578 5.49513,-61.27526 0.50046,-21.38213 1.516,-42.09154 2.45188,-50 1.57119,-13.27699 5.4476,-31.36537 8.08998,-37.750001 l 1.34507,-3.25 h 128.8934 128.8934 l 2.63985,8.75 c 6.08103,20.156101 7.61955,34.406361 8.6641,80.250001 0.89562,39.30731 1.86887,48.82949 7.0831,69.30099 2.80302,11.00486 8.63504,28.95882 11.55539,35.57344 1.30505,2.95594 2.37281,5.76844 2.37281,6.25 0,0.48538 -16.91415,0.87557 -37.95469,0.87557 h -37.95468 l -0.56349,-3.25 c -0.30992,-1.7875 -0.93391,-10.02932 -1.38663,-18.31515 -0.79328,-14.51864 -0.95643,-15.34226 -4.4972,-22.70384 -6.90636,-14.35891 -21.97739,-30.71166 -28.31639,-30.72455 -4.37845,-0.009 -7.44212,3.3144 -19.37708,21.01926 -14.2565,21.14873 -22.42203,27.97905 -31.92472,26.70447 -9.8998,-1.32784 -18.30259,-8.82427 -31.07877,-27.72648 -14.74352,-21.81289 -17.97303,-23.64117 -27.45345,-15.5418 -7.14,6.0999 -15.61506,17.44854 -20.1057,26.92283 -3.66096,7.72383 -3.75314,8.20992 -4.51711,23.82022 -0.42894,8.76451 -1.05551,16.80388 -1.39238,17.86526 -0.59088,1.86169 -1.95084,1.92978 -38.5451,1.92978 -20.86294,0 -37.93261,-0.19977 -37.93261,-0.44393 z"
id="path4513"
inkscape:connector-curvature="0"
transform="translate(-56.568542)" />
<path
style="fill:#000000;fill-opacity:1"
d="m 39.594409,421.1642 c 0,-2.46749 18.185161,-36.06364 43.051057,-79.5346 8.950557,-15.64751 19.753034,-35.20002 24.005494,-43.45002 l 7.73176,-15 h 38.10604 38.10604 l -2e-4,2.23249 c -1e-4,1.22787 -1.99431,10.07578 -4.43156,19.66203 -7.78392,30.6158 -10.11179,35.29497 -49.17014,98.83517 l -10.89849,17.72969 -43.250001,0.0203 c -23.7875,0.0112 -43.25,-0.21161 -43.25,-0.49507 z"
id="path4515"
inkscape:connector-curvature="0"
transform="translate(-56.568542)" />
<path
style="fill:#000000;fill-opacity:1"
d="M 1.6139312,543.92958 C 1.641425,537.2401 4.063405,519.97082 6.6187735,508.24388 11.235559,487.05683 20.217862,461.53331 32.507714,434.67958 l 6.178397,-13.5 43.454149,0.27069 c 23.89978,0.14889 43.45415,0.51009 43.45415,0.80269 0,0.29259 -2.7456,5.28856 -6.10133,11.10216 -23.740815,41.12952 -36.428347,75.98168 -38.526541,105.83092 l -0.66733,9.49354 H 40.946809 1.5944086 Z"
id="path4517"
inkscape:connector-curvature="0"
transform="translate(-56.568542)" />
<path
style="fill:#000000;fill-opacity:1"
d="M 12.11918,641.52282 C 7.434105,628.52087 1.5944086,582.80229 1.5944086,559.12511 v -10.44553 h 39.5000004 39.5 v 5.52174 c 0,5.37128 -0.152511,5.67425 -5.596954,11.11869 -10.385281,10.38528 -16.990895,22.73555 -20.01306,37.41768 l -1.754338,8.52283 -9.567824,4.6363 c -11.35871,5.50411 -20.095112,12.38399 -26.434177,20.81682 -2.839037,3.77675 -4.811755,5.63374 -5.108876,4.80918 z"
id="path4519"
inkscape:connector-curvature="0"
transform="translate(-56.568542)" />
<path
style="fill:#000000;fill-opacity:1"
d="m 254.16359,821.45812 c 7.52064,-12.19811 14.23801,-31.7349 18.14694,-52.77854 0.74974,-4.0362 1.14242,-4.53002 3.80989,-4.79125 l 2.97399,-0.29125 1.85186,9.79125 c 3.45673,18.27665 11.55543,39.66605 19.70443,52.04125 l 2.14011,3.25 h -26.53977 -26.53978 z"
id="path4521"
inkscape:connector-curvature="0"
transform="translate(-56.568542)" />
<path
style="fill:#000000;fill-opacity:1"
d="m 535.09441,636.96904 c -5.54021,-7.77645 -15.28282,-15.56204 -26.40806,-21.1034 l -9.40806,-4.68606 -2.11797,-9.5 c -3.40509,-15.27326 -11.54346,-29.68916 -21.63936,-38.33087 l -3.92655,-3.36099 v -10.77573 c 0,-13.74446 -2.22522,-28.68219 -6.46689,-43.4117 -3.47339,-12.06159 -9.76927,-28.70642 -14.06363,-37.18093 l -2.48152,-4.89705 41.9254,-0.27137 41.92541,-0.27136 5.08406,15.5 c 9.90205,30.18876 13.08225,48.71682 13.06685,76.12834 -0.0115,20.54191 -1.15712,36.33581 -3.98003,54.87166 -2.29557,15.07316 -6.0516,33.01825 -6.8971,32.95201 -0.3369,-0.0264 -2.41255,-2.57454 -4.61255,-5.66255 z"
id="path4523"
inkscape:connector-curvature="0"
transform="translate(-56.568542)" />
<path
style="fill:#000000;fill-opacity:1"
d="m 443.09441,452.10697 c -5.67275,-11.13765 -16.52406,-29.55199 -45.92151,-77.92739 -17.75407,-29.21548 -23.39832,-41.31692 -29.96695,-64.25 l -1.50374,-5.25 41.6961,0.007 41.6961,0.007 3.91592,7.24331 c 2.15375,3.98382 11.87827,21.19331 21.61004,38.24331 20.98319,36.76244 28.29962,50.14554 37.85218,69.23861 8.14156,16.27284 19.45527,42.26131 18.71857,42.99801 -0.27223,0.27223 -18.85536,0.71456 -41.29584,0.98295 l -40.80087,0.48797 z"
id="path4525"
inkscape:connector-curvature="0"
transform="translate(-56.568542)" />
<path
style="fill:#000000;fill-opacity:1"
d="m 364.20108,297.42958 c -0.87675,-3.9875 -1.87817,-8.7125 -2.22538,-10.5 l -0.63129,-3.25 h 37.04321 c 20.37377,0 37.64252,-0.21632 38.375,-0.48072 0.88636,-0.31994 2.98736,2.94106 6.28175,9.75 2.72247,5.6269 5.12247,10.56822 5.33333,10.98072 0.21086,0.4125 -18.28395,0.75 -41.09958,0.75 h -41.48295 z"
id="path4527"
inkscape:connector-curvature="0"
transform="translate(-56.568542)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 18 KiB

248
images/logo/assets/svg/linuxgsm_white_vector.svg

@ -1,248 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="550.72363"
height="829.10431"
id="svg4312"
version="1.1"
inkscape:version="0.92.1 r15371"
sodipodi:docname="linuxgsm_logo_white.svg"
inkscape:export-filename="C:\Users\me\Desktop\lgsm media\linuxgsm_logo_white.png"
inkscape:export-xdpi="61.009998"
inkscape:export-ydpi="61.009998">
<title
id="title5291">Stycil Tux</title>
<defs
id="defs4314">
<linearGradient
id="linearGradient3910-6-0-8-7-7-8">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-7-4" />
<stop
style="stop-color:#4c4c4c;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-6-9" />
</linearGradient>
<linearGradient
y2="497.71365"
x2="140.00095"
y1="230.00362"
x1="140.00095"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
gradientUnits="userSpaceOnUse"
id="linearGradient4970"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient3910-6-0-8-7-81">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-5" />
<stop
style="stop-color:#a6a6a6;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-64" />
</linearGradient>
<linearGradient
id="linearGradient4565-3">
<stop
style="stop-color:#939393;stop-opacity:1;"
offset="0"
id="stop4567-1" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop4569-9" />
</linearGradient>
<linearGradient
id="linearGradient4617-7">
<stop
id="stop4619-9"
offset="0"
style="stop-color:#ffffff;stop-opacity:0;" />
<stop
id="stop4621-5"
offset="1"
style="stop-color:#a6a6a6;stop-opacity:0.5" />
</linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath4719-2">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
id="rect4721-4"
width="1352.3417"
height="1135.7903"
x="-490.55533"
y="-358.505" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
id="linearGradient5197"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
x1="140.00095"
y1="230.00362"
x2="140.00095"
y2="497.71365" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="258.13863"
inkscape:cy="366.87337"
inkscape:document-units="px"
inkscape:current-layer="g6064"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:pagecheckerboard="true" />
<metadata
id="metadata4317">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Stycil Tux</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Cheeseness (Josh Bush)</dc:title>
</cc:Agent>
</dc:creator>
<dc:subject>
<rdf:Bag>
<rdf:li>tux linux icon</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
http://en.wikipedia.org/wiki/Tux
You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
[email protected]</dc:description>
<dc:date>2012-01-02</dc:date>
<cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
<dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
<dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
</cc:License>
</rdf:RDF>
</metadata>
<g
id="g6064"
transform="translate(56.568542)"
style="display:inline">
<g
transform="translate(-756.17483,-402.59665)"
id="g5961-3"
style="display:inline;fill:#ababb2;fill-opacity:1">
<g
transform="translate(-452.34937,725.009)"
id="g5391-8-7"
style="fill:#ababb2;fill-opacity:1">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-1-3-9"
d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-9-5-2"
d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-8-9-8"
d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
<g
style="fill:#ababb2;fill-opacity:1"
transform="translate(-0.90575)"
id="g5258-9-9">
<path
inkscape:connector-curvature="0"
d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#ababb2;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path5239-0-4-2" />
</g>
</g>
<path
style="fill:#ababb2;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
id="path5429-1-9"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
style="fill:#ababb2;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
id="path5429-3-7-4" />
<path
style="fill:#ababb2;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
id="path5429-7-77-6"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(-55.729306)"
id="g5425"
style="display:inline">
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
id="path4372-7-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccsssccssscccc"
inkscape:label="path4372-7-9" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
id="path4372-7-91"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
</g>
<path
style="fill:#ababb2;fill-opacity:0"
d="m 143.73409,497.33094 v -25.5 h 132.5 132.5 v 25.5 25.5 h -132.5 -132.5 z m 126.95432,-8.94496 c 3.54491,-4.27135 -2.78295,-9.83008 -6.92404,-6.08245 -2.43802,2.20639 -2.56466,3.85017 -0.45885,5.95598 1.96721,1.96722 5.80071,2.03289 7.38289,0.12647 z m 18.06193,-0.36711 c 4.2279,-3.42355 -1.243,-9.41376 -5.92103,-6.48306 -2.33049,1.46002 -2.61483,5.44202 -0.49906,6.9891 2.39868,1.75396 3.76179,1.64651 6.42009,-0.50604 z"
id="path3731"
inkscape:connector-curvature="0"
transform="translate(-56.568542)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

324
images/logo/assets/svg/linuxgsm_white_vector_full.svg

@ -1,324 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1710.7236"
height="830.10431"
id="svg4312"
version="1.1"
inkscape:version="0.92.1 r15371"
sodipodi:docname="linuxgsm_white_vector_full.svg"
inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\graphics\logos\dark\lgsm-dark-full.png"
inkscape:export-xdpi="84.68"
inkscape:export-ydpi="84.68">
<title
id="title5291">Stycil Tux</title>
<defs
id="defs4314">
<linearGradient
id="linearGradient3910-6-0-8-7-7-8">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-7-4" />
<stop
style="stop-color:#4c4c4c;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-6-9" />
</linearGradient>
<linearGradient
y2="497.71365"
x2="140.00095"
y1="230.00362"
x1="140.00095"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
gradientUnits="userSpaceOnUse"
id="linearGradient4970"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient3910-6-0-8-7-81">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-5" />
<stop
style="stop-color:#a6a6a6;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-64" />
</linearGradient>
<linearGradient
id="linearGradient4565-3">
<stop
style="stop-color:#939393;stop-opacity:1;"
offset="0"
id="stop4567-1" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop4569-9" />
</linearGradient>
<linearGradient
id="linearGradient4617-7">
<stop
id="stop4619-9"
offset="0"
style="stop-color:#ffffff;stop-opacity:0;" />
<stop
id="stop4621-5"
offset="1"
style="stop-color:#a6a6a6;stop-opacity:0.5" />
</linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath4719-2">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
id="rect4721-4"
width="1352.3417"
height="1135.7903"
x="-490.55533"
y="-358.505" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3910-6-0-8-7-7-8"
id="linearGradient5197"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
x1="140.00095"
y1="230.00362"
x2="140.00095"
y2="497.71365" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="1126.276"
inkscape:cy="424.55397"
inkscape:document-units="px"
inkscape:current-layer="g6064"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:pagecheckerboard="true" />
<metadata
id="metadata4317">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Stycil Tux</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Cheeseness (Josh Bush)</dc:title>
</cc:Agent>
</dc:creator>
<dc:subject>
<rdf:Bag>
<rdf:li>tux linux icon</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
http://en.wikipedia.org/wiki/Tux
You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
[email protected]</dc:description>
<dc:date>2012-01-02</dc:date>
<cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
<dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
<dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1" />
<g
id="g6064"
transform="translate(56.568542,1.0001456)"
style="display:inline">
<g
transform="translate(-756.17483,-402.59665)"
id="g5961-3"
style="display:inline;fill:#ababb2;fill-opacity:1">
<g
transform="translate(-452.34937,725.009)"
id="g5391-8-7"
style="fill:#ababb2;fill-opacity:1">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-1-3-9"
d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-9-5-2"
d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path5199-8-9-8"
d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
<g
style="fill:#ababb2;fill-opacity:1"
transform="translate(-0.90575)"
id="g5258-9-9">
<path
inkscape:connector-curvature="0"
d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
style="fill:#ababb2;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path5239-0-4-2" />
</g>
</g>
<path
style="fill:#ababb2;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
id="path5429-1-9"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
style="fill:#ababb2;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
id="path5429-3-7-4" />
<path
style="fill:#ababb2;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
id="path5429-7-77-6"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(-55.729306)"
id="g5425"
style="display:inline">
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
id="path4372-7-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccsssccssscccc"
inkscape:label="path4372-7-9" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
id="path4372-7-91"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
</g>
<flowRoot
xml:space="preserve"
id="flowRoot4513"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
id="flowRegion4515"><rect
id="rect4517"
width="584"
height="560"
x="532"
y="65.104309" /></flowRegion><flowPara
id="flowPara4519" /></flowRoot> <flowRoot
xml:space="preserve"
id="flowRoot4521"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
id="flowRegion4523"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'"><rect
id="rect4525"
width="476"
height="536"
x="548"
y="81.104309"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'" /></flowRegion><flowPara
id="flowPara4527" /></flowRoot> <text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:169.59358215px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.23983955"
x="429.06406"
y="220.41109"
id="text4531"
transform="scale(1.0093264,0.99075977)"
inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\logos\master rasta\text4531.png"
inkscape:export-xdpi="118.84"
inkscape:export-ydpi="118.84"><tspan
sodipodi:role="line"
id="tspan4529"
x="429.06406"
y="220.41109"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#ababb2;fill-opacity:1;stroke-width:4.23983955">Linux</tspan><tspan
sodipodi:role="line"
x="429.06406"
y="487.07776"
id="tspan4535"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#7dffff;fill-opacity:0.77900552;stroke-width:4.23983955"> <tspan
style="fill:#ffffff;fill-opacity:1;opacity:1"
id="tspan942">Game Server</tspan></tspan><tspan
sodipodi:role="line"
x="429.06406"
y="753.74445"
id="tspan4537"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#f9f9f9;fill-opacity:0;stroke-width:4.23983955"><tspan
style="fill:#ffffff;fill-opacity:1;opacity:1"
id="tspan876"> Managers_</tspan>_</tspan></text>
<flowRoot
xml:space="preserve"
id="flowRoot2606"
style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;letter-spacing:0px;word-spacing:0px"><flowRegion
id="flowRegion2608"><rect
id="rect2610"
width="596"
height="244"
x="551"
y="408.10431" /></flowRegion><flowPara
id="flowPara2612"></flowPara></flowRoot> </g>
<path
style="fill:#ffffff;fill-opacity:0"
d="m 103.95897,305.64737 c 0,-0.29209 1.98741,-4.48823 4.41646,-9.32476 10.29339,-20.49537 17.26545,-40.28401 22.07901,-62.66635 3.9742,-18.47945 4.59123,-25.6379 5.51655,-64 0.79547,-32.97852 2.08256,-50.45634 4.54764,-61.75359 l 0.60083,-2.75359 135.12878,0.25359 135.12878,0.25359 0.7479,3.5 c 2.31683,10.84216 4.06464,35.3419 4.85112,68 0.91823,38.12897 1.41461,42.93974 6.60364,64 4.40569,17.881 10.0926,33.73138 17.82493,49.68112 l 7.42651,15.31888 H 407.51376 366.1964 l -1.20552,-4.75 c -2.93,-11.54485 -4.20984,-20.83185 -4.95211,-35.9344 -0.77423,-15.75263 -0.89123,-16.38609 -4.38555,-23.74414 -4.52737,-9.53335 -8.2765,-14.98271 -15.95627,-23.1924 -5.98826,-6.40148 -10.16413,-9.37906 -13.15352,-9.37906 -3.01465,0 -9.01166,6.69118 -17.89249,19.96358 -14.5779,21.78668 -21.89779,28.26554 -31.84767,28.18846 -10.48815,-0.0812 -17.90838,-6.63067 -34.16101,-30.15204 -9.08036,-13.14143 -13.92437,-18 -17.94601,-18 -2.78994,0 -17.0247,14.17371 -22.5033,22.40678 -7.65084,11.49747 -9.29829,17.42848 -10.30335,37.09322 -0.57802,11.30946 -1.63236,20.34738 -3.14974,27 l -2.28089,10 -41.25,0.26109 c -22.6875,0.1436 -41.25,0.0221 -41.25,-0.26998 z"
id="path858"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:0"
d="m 517.45897,621.51377 c -1.1,-0.86839 -5.55983,-3.235 -9.91074,-5.25913 l -7.91074,-3.68024 -2.77827,-11.29969 c -3.50583,-14.25876 -8.76676,-23.87229 -18.53319,-33.86648 l -7.13295,-7.2993 0.50085,-6.23958 c 0.56479,-7.03604 -0.9597,-22.97762 -3.30005,-34.50852 -4.32021,-21.28575 -18.56308,-55.37094 -35.39473,-84.70457 -3.47149,-6.05 -6.50225,-11.3375 -6.73501,-11.75 -0.23276,-0.4125 19.33809,-0.75 43.49078,-0.75 h 43.91398 l 4.19984,9.0393 c 18.10421,38.96563 27.55172,68.78316 31.67198,99.9607 2.56585,19.41552 1.31093,51.25328 -3.20255,81.25 l -1.61751,10.75 -12.63084,-0.0318 c -9.96138,-0.0251 -13.05354,-0.3655 -14.63085,-1.61069 z"
id="path860"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:0"
d="m 131.38196,230.39891 c 2.26043,-7.12198 3.80851,-27.49521 4.57759,-60.24265 0.8735,-37.19355 2.20679,-52.48825 5.97138,-68.5 5.698,-24.235019 17.42655,-45.8345 34.04809,-62.703515 l 7.68211,-7.796486 h 92.50635 92.50635 l 8.46293,8.778947 c 10.02293,10.397199 17.50821,21.162474 23.38694,33.634919 11.75298,24.935379 15.0362,45.563325 16.48717,103.586135 0.83379,33.34278 1.27259,39.85533 3.45308,51.25 l 0.7176,3.75 h -35.05284 -35.05285 l -4.47347,-5.81362 c -6.22632,-8.09156 -16.26919,-17.18638 -18.97791,-17.18638 -4.40434,0 -9.15051,4.57291 -16.34675,15.75 l -4.66783,7.25 h -30.18389 -30.18388 l -3.77528,-5.75 c -8.62521,-13.13676 -14.1939,-18.04759 -19.07583,-16.8223 -2.85946,0.71768 -15.11364,12.62294 -18.93212,18.39304 l -2.7657,4.17926 h -35.4345 c -33.3485,0 -35.40167,-0.10345 -34.87674,-1.75735 z"
id="path862"
inkscape:connector-curvature="0" />
</svg>

Before

Width:  |  Height:  |  Size: 20 KiB

BIN
images/logo/facebook.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

BIN
images/logo/lgsm-dark-full.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

BIN
images/logo/lgsm-dark-square-114.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

BIN
images/logo/lgsm-dark-square-16.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 653 B

BIN
images/logo/lgsm-dark-square-184.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

BIN
images/logo/lgsm-dark-square-24.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1008 B

BIN
images/logo/lgsm-dark-square-512.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

BIN
images/logo/lgsm-dark-square-64.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

BIN
images/logo/lgsm-light-full.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

BIN
images/logo/lgsm_full.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

BIN
images/logo/lgsmbutton.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

BIN
images/wallpaper/LinuxGSM_wallpaper.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 KiB

BIN
images/wallpaper/LinuxGSM_wallpaper_2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

2
lgsm/config-default/config-lgsm/bb2server/_default.cfg

@ -18,7 +18,7 @@ maxplayers="20"
## Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

118
lgsm/config-default/config-lgsm/bdserver/_default.cfg

@ -0,0 +1,118 @@
##################################
######## Default Settings ########
##################################
# DO NOT EDIT WILL BE OVERWRITTEN!
# Copy settings from here and use them in either
# common.cfg - applies settings to every instance
# [instance].cfg - applies settings to a specific instance
#### Server Settings ####
## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="pve_tomb"
maxplayers="3"
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
fn_parms(){
parms="-game bdef -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
}
#### LinuxGSM Settings ####
## Notification Alerts
# (on|off)
# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
postalert="off"
postdays="7"
posttarget="https://hastebin.com"
# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
discordalert="off"
discordwebhook="webhook"
# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
emailalert="off"
email="[email protected]"
emailfrom=""
# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
iftttalert="off"
ifttttoken="accesstoken"
iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
mailgunalert="off"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
channeltag=""
# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
pushoveralert="off"
pushovertoken="accesstoken"
# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
updateonstart="off"
## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
consolelogging="on"
logdays="7"
#### LinuxGSM Advanced Settings ####
## SteamCMD Settings
# Server appid
appid="817300"
## LinuxGSM Server Details
# Do not edit
gamename="Base Defense"
engine="goldsource"
#### Directories ####
# Edit with care
## Server Specific Directories
systemdir="${serverfiles}/bdef"
executabledir="${serverfiles}"
executable="./hlds_run"
servercfg="${servicename}.cfg"
servercfgdefault="server.cfg"
servercfgdir="${systemdir}"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${rootdir}/backups"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${systemdir}/logs"
lgsmlogdir="${logdir}/script"
consolelogdir="${logdir}/console"
lgsmlog="${lgsmlogdir}/${servicename}-script.log"
consolelog="${consolelogdir}/${servicename}-console.log"
alertlog="${lgsmlogdir}/${servicename}-alert.log"
postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
## Logs Naming
lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

2
lgsm/config-default/config-lgsm/bmdmserver/_default.cfg

@ -18,7 +18,7 @@ maxplayers="16"
## Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

2
lgsm/config-default/config-lgsm/boserver/_default.cfg

@ -10,7 +10,7 @@
## Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
ip=""

120
lgsm/config-default/config-lgsm/bt1944server/_default.cfg

@ -0,0 +1,120 @@
##################################
######## Default Settings ########
##################################
# DO NOT EDIT WILL BE OVERWRITTEN!
# Copy settings from here and use them in either
# common.cfg - applies settings to every instance
# [instance].cfg - applies settings to a specific instance
#### Server Settings ####
## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
ip="0.0.0.0"
port="7777"
queryport="7780"
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
fn_parms(){
parms="/Game/Maps/Final_Maps/Derailed?Game=/Script/ShooterGame.BombGameMode?listen -log -broadcastip=\"${ip}\" -PORT=${port} -QueryPort=${queryport} -defgameini=\"${servercfgfullpath}\""
}
#### LinuxGSM Settings ####
## Notification Alerts
# (on|off)
# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
postalert="off"
postdays="7"
posttarget="https://hastebin.com"
# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
discordalert="off"
discordwebhook="webhook"
# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
emailalert="off"
email="[email protected]"
emailfrom=""
# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
iftttalert="off"
ifttttoken="accesstoken"
iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
mailgunalert="off"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
channeltag=""
# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
pushoveralert="off"
pushovertoken="accesstoken"
# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
updateonstart="off"
## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
consolelogging="on"
logdays="7"
#### LinuxGSM Advanced Settings ####
## SteamCMD Settings
# Server appid
appid="805140"
# Steam App Branch Select
# Allows to opt into the various Steam app branches. Default branch is "".
# Example: "-beta latest_experimental"
branch=""
## LinuxGSM Server Details
# Do not edit
gamename="Battalion 1944"
engine="unreal4"
#### Directories ####
# Edit with care
## Server Specific Directories
systemdir="${serverfiles}/Linux/Battalion"
executabledir="${systemdir}/Binaries/Linux"
executable="./BattalionServer"
servercfgdir="${systemdir}/Saved/Config/LinuxServer"
servercfg="${servicename}.ini"
servercfgdefault="DefaultGame.ini"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${systemdir}/Saved/Logs"
lgsmlogdir="${logdir}/script"
consolelogdir="${logdir}/console"
lgsmlog="${lgsmlogdir}/${servicename}-script.log"
consolelog="${consolelogdir}/${servicename}-console.log"
alertlog="${lgsmlogdir}/${servicename}-alert.log"
postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
## Logs Naming
lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

2
lgsm/config-default/config-lgsm/csgoserver/_default.cfg

@ -30,7 +30,7 @@ tickrate="64"
## Required: Game Server Login Token
# GSLT is required for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Optional: Workshop Parameters

2
lgsm/config-default/config-lgsm/cssserver/_default.cfg

@ -18,7 +18,7 @@ maxplayers="16"
## Required: Game Server Login Token
# GSLT is required for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

2
lgsm/config-default/config-lgsm/emserver/_default.cfg

@ -18,7 +18,7 @@ maxplayers="62"
## Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

104
lgsm/config-default/config-lgsm/etlserver/_default.cfg

@ -0,0 +1,104 @@
##################################
######## Default Settings ########
##################################
# DO NOT EDIT WILL BE OVERWRITTEN!
# Copy settings from here and use them in either
# common.cfg - applies settings to every instance
# [instance].cfg - applies settings to a specific instance
#### Server Settings ####
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
fn_parms(){
parms="+set net_strict 1 +set fs_homepath ${serverfiles} +exec ${servercfg}"
}
#### LinuxGSM Settings ####
## Notification Alerts
# (on|off)
# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
postalert="off"
postdays="7"
posttarget="https://hastebin.com"
# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
discordalert="off"
discordwebhook="webhook"
# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
emailalert="off"
email="[email protected]"
emailfrom=""
# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
iftttalert="off"
ifttttoken="accesstoken"
iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
mailgunalert="off"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
channeltag=""
# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
pushoveralert="off"
pushovertoken="accesstoken"
# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
consolelogging="on"
logdays="7"
#### LinuxGSM Advanced Settings ####
## LinuxGSM Server Details
# Do not edit
gamename="ET: Legacy"
engine="idtech3"
#### Directories ####
# Edit with care
## Server Specific Directories
systemdir="${serverfiles}"
executabledir="${systemdir}"
executable="./etlded"
servercfg="${servicename}.cfg"
servercfgdefault="server.cfg"
servercfgdir="${systemdir}/etmain"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${rootdir}/backups"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${serverfiles}/Logs"
lgsmlogdir="${logdir}/script"
consolelogdir="${logdir}/console"
lgsmlog="${lgsmlogdir}/${servicename}-script.log"
consolelog="${consolelogdir}/${servicename}-console.log"
alertlog="${lgsmlogdir}/${servicename}-alert.log"
postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
## Logs Naming
lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

2
lgsm/config-default/config-lgsm/gmodserver/_default.cfg

@ -29,7 +29,7 @@ customparms="+r_hunkalloclightmaps 0 -disableluarefresh"
## Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

2
lgsm/config-default/config-lgsm/insserver/_default.cfg

@ -20,7 +20,7 @@ workshop="0"
## Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

2
lgsm/config-default/config-lgsm/nmrihserver/_default.cfg

@ -18,7 +18,7 @@ maxplayers="8"
## Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

12
lgsm/config-default/config-lgsm/rustserver/_default.cfg

@ -19,7 +19,8 @@ servername="Rust"
maxplayers="50"
# Advanced Start Settings
seed="" # default random; range : 1 to 2147483647 ; used to change or reproduce a procedural map
seed="" # default random; range : 1 to 2147483647 ; used to change or reproduce a procedural map
salt="" # default random; range : unknown range ; used to recover a known setting from an existing map
worldsize="3000" # default 3000; range : 1000 to 6000 ; map size in meters
saveinterval="300" # Auto-save in seconds
tickrate="30" # default 30; range : 15 to 100
@ -34,7 +35,14 @@ else
# Keep randomness of the number if not set
conditionalseed=""
fi
parms="-batchmode +server.ip ${ip} +server.port ${port} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${servicename}\" ${conditionalseed} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile \"${gamelogdate}\""
if [ -n "${salt}" ]; then
# If set, then add to start parms
conditionalsalt="+server.salt ${salt}"
else
# Keep randomness of the number if not set
conditionalsalt=""
fi
parms="-batchmode +server.ip ${ip} +server.port ${port} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${servicename}\" ${conditionalseed} ${conditionalsalt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile \"${gamelogdate}\""
}
#### LinuxGSM Settings ####

118
lgsm/config-default/config-lgsm/rwserver/_default.cfg

@ -0,0 +1,118 @@
##################################
######## Default Settings ########
##################################
# DO NOT EDIT WILL BE OVERWRITTEN!
# Copy settings from here and use them in either
# common.cfg - applies settings to every instance
# [instance].cfg - applies settings to a specific instance
#### Server Settings ####
## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
javaram="2048" # -Xmx$2048M
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
fn_parms(){
parms=""
}
#### LinuxGSM Settings ####
## Notification Alerts
# (on|off)
# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
postalert="off"
postdays="7"
posttarget="https://hastebin.com"
# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
discordalert="off"
discordwebhook="webhook"
# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
emailalert="off"
email="[email protected]"
emailfrom=""
# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
iftttalert="off"
ifttttoken="accesstoken"
iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
mailgunalert="off"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
channeltag=""
# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
pushoveralert="off"
pushovertoken="accesstoken"
# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
updateonstart="off"
## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
consolelogging="on"
logdays="7"
#### LinuxGSM Advanced Settings ####
## SteamCMD Settings
# Server appid
appid="339010"
# Steam App Branch Select
# Allows to opt into the various Steam app branches. Default branch is "".
# Example: "-beta latest_experimental"
branch=""
## LinuxGSM Server Details
# Do not edit
gamename="Rising World"
engine="risingworld"
#### Directories ####
# Edit with care
## Server Specific Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
executable="java -Xmx${javaram}m -jar ${serverfiles}/server.jar"
servercfg="server.properties"
servercfgdefault="server.properties"
servercfgdir="${serverfiles}"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${rootdir}/backups"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${systemdir}/logs"
lgsmlogdir="${logdir}/script"
consolelogdir="${logdir}/console"
lgsmlog="${lgsmlogdir}/${servicename}-script.log"
consolelog="${consolelogdir}/${servicename}-console.log"
alertlog="${lgsmlogdir}/${servicename}-alert.log"
postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
## Logs Naming
lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

2
lgsm/config-default/config-lgsm/tf2server/_default.cfg

@ -18,7 +18,7 @@ maxplayers="16"
## Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

2
lgsm/config-default/config-lgsm/tuserver/_default.cfg

@ -15,7 +15,7 @@ queryport="27015"
## Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

2
lgsm/config-default/config-lgsm/ut3server/_default.cfg

@ -11,7 +11,7 @@
## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
ip="0.0.0.0"
port="7777"
queryport="25300"
queryport="6500"
defaultmap="VCTF-Suspense"
game="UTGameContent.UTVehicleCTFGame_Content"
mutators="" #"UTGame.UTMutator_Instagib,UTGame.UTMutator_LowGrav"

2
lgsm/config-default/config-lgsm/zpsserver/_default.cfg

@ -18,7 +18,7 @@ maxplayers="20"
## Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
# More info: https://linuxgsm.com/gslt
gslt=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

4
lgsm/data/serverlist.csv

@ -3,9 +3,11 @@ sdtd,sdtdserver,7 Days to Die
ark,arkserver,ARK: Survival Evolved
bo,boserver,Ballistic Overkill
bf1942,bf1942server,Battlefield 1942
bd,bdserver,Base Defense
bmdm,bmdmserver,Black Mesa: Deathmatch
bs,bsserver,Blade Symphony
bb2,bb2server,BrainBread 2
bt1944,bt1944server,Battalion 1944
cod,codserver,Call of Duty
cod2,cod2server,Call of Duty 2
cod4,cod4server,Call of Duty 4
@ -55,6 +57,7 @@ qw,qwserver,Quake World
ro,roserver,Red Orchestra: Ostfront 41-45
ricochet,ricochetserver,Ricochet
rust,rustserver,Rust
rw,rwserver, Rising World
samp,sampserver,San Andreas Multiplayer
ss3,ss3server,Serious Sam 3: BFE
sb,sbserver,Starbound
@ -71,4 +74,5 @@ ut2k4,ut2k4server,Unreal Tournament 2004
ut3,ut3server,Unreal Tournament 3
ut99,ut99server,Unreal Tournament 99
wet,wetserver,Wolfenstein: Enemy Territory
etl,etlserver,ET: Legacy
zps,zpsserver,Zombie Panic! Source

Can't render this file because it has a wrong number of fields in line 66.

6
lgsm/functions/alert.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Overall function for managing alerts.
local commandname="ALERT"
@ -45,12 +45,12 @@ fn_alert_restart(){
}
fn_alert_restart_query(){
fn_script_log_info "Sending alert: Restarted: ${gsquerycmd}"
fn_script_log_info "Sending alert: Restarted: ${servicename}"
alertsubject="Alert - ${servicename} - Restarted"
alertemoji="🚨"
alertsound="2"
alerturl="not enabled"
alertbody="gsquery.py failed to query: ${gsquerycmd}"
alertbody="Unable to query: ${servicename}"
}
fn_alert_update(){

6
lgsm/functions/alert_discord.sh

@ -2,7 +2,7 @@
# LinuxGSM alert_discord.sh function
# Author: Daniel Gibbs
# Contributor: faflfama
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Sends Discord alert.
json=$(cat <<EOF
@ -39,7 +39,7 @@ json=$(cat <<EOF
},
{
"name": "Server IP",
"value": "[${ip}:${port}](https://www.gametracker.com/server_info/${ip}:${port})"
"value": "[${extip:-$ip}:${port}](https://www.gametracker.com/server_info/${extip:-$ip}:${port})"
},
{
"name": "More info",
@ -53,7 +53,7 @@ EOF
fn_print_dots "Sending Discord alert"
sleep 0.5
discordsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" ${discordwebhook})
discordsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" "${discordwebhook}")
if [ -n "${discordsend}" ]; then
fn_print_fail_nl "Sending Discord alert: ${discordsend}"

2
lgsm/functions/alert_email.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_email.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Sends email alert.
local commandname="ALERT"

4
lgsm/functions/alert_ifttt.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_ifttt.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Sends IFTTT alert.
local commandname="ALERT"
@ -19,7 +19,7 @@ EOF
fn_print_dots "Sending IFTTT alert"
sleep 0.5
iftttsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" "https://maker.ifttt.com/trigger/${iftttevent}/with/key/${ifttttoken}"|grep "Bad Request")
iftttsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" "https://maker.ifttt.com/trigger/${iftttevent}/with/key/${ifttttoken}" | grep "Bad Request")
if [ -n "${iftttsend}" ]; then
fn_print_fail_nl "Sending IFTTT alert: ${pushbulletsend}"

4
lgsm/functions/alert_mailgun.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_mailgun.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Sends Mailgun Email alert.
local commandname="ALERT"
@ -17,7 +17,7 @@ mailgunsend=$(${curlpath} -s --user "api:${mailguntoken}" \
-F subject="${alertemoji} ${alertsubject} ${alertemoji}" \
-F o:tag='alert' \
-F o:tag='LinuxGSM' \
-F text="$(cat ${alertlog})" https://api.mailgun.net/v3/${mailgundomain}/messages)
-F text="$(cat "${alertlog}")" https://api.mailgun.net/v3/${mailgundomain}/messages)
if [ -z "${mailgunsend}" ]; then
fn_print_fail_nl "Sending Email alert: Mailgun: ${email}"

2
lgsm/functions/alert_pushbullet.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_pushbullet.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Sends Pushbullet Messenger alert.
local commandname="ALERT"

8
lgsm/functions/alert_pushover.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_pushover.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Sends Pushover alert.
local commandname="ALERT"
@ -12,10 +12,10 @@ fn_print_dots "Sending Pushover alert"
sleep 0.5
# Different alerts are given different priorities and notification sounds
if [ "${alertsound}" == "1" ];then
if [ "${alertsound}" == "1" ]; then
alertsound=""
alertpriority="0"
elif [ "${alertsound}" == "2" ];then
elif [ "${alertsound}" == "2" ]; then
# restarted
alertsound="siren"
alertpriority="1"
@ -24,7 +24,7 @@ else
alertpriority="0"
fi
pushoversend=$(${curlpath} -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alertemoji} ${alertsubject} ${alertemoji}" -F message=" <b>Message</b><br>${alertbody}<br><br><b>Game</b><br>${gamename}<br><br><b>Server name</b><br>${servername}<br><br><b>Hostname</b><br>${HOSTNAME}<br><br><b>Server IP</b><br><a href='https://www.gametracker.com/server_info/${ip}:${port}'>${ip}:${port}</a><br><br><b>More info</b><br><a href='${alerturl}'>${alerturl}</a>" "https://api.pushover.net/1/messages.json"|grep errors)
pushoversend=$(${curlpath} -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alertemoji} ${alertsubject} ${alertemoji}" -F message=" <b>Message</b><br>${alertbody}<br><br><b>Game</b><br>${gamename}<br><br><b>Server name</b><br>${servername}<br><br><b>Hostname</b><br>${HOSTNAME}<br><br><b>Server IP</b><br><a href='https://www.gametracker.com/server_info/${ip}:${port}'>${ip}:${port}</a><br><br><b>More info</b><br><a href='${alerturl}'>${alerturl}</a>" "https://api.pushover.net/1/messages.json" | grep errors)
if [ -n "${pushoversend}" ]; then
fn_print_fail_nl "Sending Pushover alert: ${pushoversend}"

4
lgsm/functions/check.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Overall function for managing checks.
# Runs checks that will either halt on or fix an issue.
@ -61,7 +61,7 @@ do
fi
done
local allowed_commands_array=( command_debug.sh command_details.sh command_monitor.sh command_start.sh command_stop.sh )
local allowed_commands_array=( command_debug.sh command_details.sh command_monitor.sh command_start.sh command_stop.sh command_dev_query_raw.sh )
for allowed_command in "${allowed_commands_array[@]}"
do
if [ "${allowed_command}" == "${function_selfname}" ]; then

2
lgsm/functions/check_config.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_config.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks if the server config is missing and warns the user if needed.
local commandname="CHECK"

28
lgsm/functions/check_deps.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_deps.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks if required dependencies are installed for LinuxGSM.
local commandname="CHECK"
@ -18,11 +18,11 @@ fn_deps_detector(){
depstatus=0
deptocheck="${javaversion}"
unset javacheck
elif [ -n "$(command -v apt-get 2>/dev/null)" ]; then
dpkg-query -W -f='${Status}' ${deptocheck} 2>/dev/null | grep -q -P '^install ok installed'
elif [ -n "$(command -v apt 2>/dev/null)" ]; then
dpkg-query -W -f='${Status}' "${deptocheck}" 2>/dev/null | grep -q -P '^install ok installed'
depstatus=$?
elif [ -n "$(command -v yum 2>/dev/null)" ]; then
yum -q list installed ${deptocheck} > /dev/null 2>&1
yum -q list installed "${deptocheck}" > /dev/null 2>&1
depstatus=$?
fi
@ -77,7 +77,7 @@ fn_found_missing_deps(){
sleep 0.5
fn_print_error_nl "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}"
fn_script_log_error "Checking dependencies: missing: ${array_deps_missing[@]}"
sleep 1
sleep 0.5
sudo -v > /dev/null 2>&1
if [ $? -eq 0 ]; then
fn_print_information_nl "Automatically installing missing dependencies."
@ -90,11 +90,11 @@ fn_found_missing_deps(){
sleep 1
echo -en " \r"
if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
cmd="sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get -y install ${array_deps_missing[@]}"
eval ${cmd}
cmd="sudo dpkg --add-architecture i386; sudo apt update; sudo apt -y install ${array_deps_missing[@]}"
eval "${cmd}"
elif [ -n "$(command -v yum 2>/dev/null)" ]; then
cmd="sudo yum -y install ${array_deps_missing[@]}"
eval ${cmd}
eval "${cmd}"
fi
if [ $? != 0 ]; then
fn_print_failure_nl "Unable to install dependencies"
@ -108,7 +108,7 @@ fn_found_missing_deps(){
fn_print_warning_nl "$(whoami) does not have sudo access. Manually install dependencies."
fn_script_log_warn "$(whoami) does not have sudo access. Manually install dependencies."
if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
echo " sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get install ${array_deps_missing[@]}"
echo " sudo dpkg --add-architecture i386; sudo apt update; sudo apt install ${array_deps_missing[@]}"
elif [ -n "$(command -v yum 2>/dev/null)" ]; then
echo " sudo yum install ${array_deps_missing[@]}"
fi
@ -139,7 +139,7 @@ if [ "${function_selfname}" == "command_install.sh" ]; then
echo "================================="
fi
# Check will only run if using apt-get or yum
# Check will only run if using apt or yum
if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
# Generate array of missing deps
array_deps_missing=()
@ -149,7 +149,7 @@ if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
# All servers except ts3 require tmux
if [ "${gamename}" != "TeamSpeak 3" ]; then
if [ "$(command -v tmux 2>/dev/null)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
if [ "$(command -v tmux 2>/dev/null)" ]; then
tmuxcheck=1 # Added for users compiling tmux from source to bypass check.
else
array_deps_required+=( tmux )
@ -193,7 +193,7 @@ if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
elif [ "${gamename}" == "Battlefield: 1942" ]; then
array_deps_required+=( libncurses5:i386 )
# Call of Duty
elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty 2" ]; then
elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty: United Offensive" ]||[ "${gamename}" == "Call of Duty 2" ]; then
array_deps_required+=( libstdc++5:i386 )
# Factorio
elif [ "${gamename}" == "Factorio" ]; then
@ -246,7 +246,7 @@ elif [ -n "$(command -v yum 2>/dev/null)" ]; then
# All servers except ts3 require tmux
if [ "${gamename}" != "TeamSpeak 3" ]; then
if [ "$(command -v tmux 2>/dev/null)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
if [ "$(command -v tmux 2>/dev/null)" ]; then
tmuxcheck=1 # Added for users compiling tmux from source to bypass check.
else
array_deps_required+=( tmux )
@ -286,7 +286,7 @@ elif [ -n "$(command -v yum 2>/dev/null)" ]; then
elif [ "${gamename}" == "Battlefield: 1942" ]; then
array_deps_required+=( ncurses-libs.i686 )
# Call of Duty
elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty 2" ]; then
elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty: United Offensive" ]||[ "${gamename}" == "Call of Duty 2" ]; then
array_deps_required+=( compat-libstdc++-33.i686 )
# Factorio
elif [ "${gamename}" == "Factorio" ]; then

2
lgsm/functions/check_executable.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_executable.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks if executable exists.
local commandname="CHECK"

4
lgsm/functions/check_glibc.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_glibc.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks if the server has the correct Glibc version or a fix available.
local commandname="CHECK"
@ -17,7 +17,7 @@ elif [ "${glibcrequired}" == "UNKNOWN" ]; then
fn_print_error_nl "Glibc fix: ${red}${glibcrequired}${default}"
echo -e " * glibc required: ${red}${glibcrequired}${default}"
echo -e " * glibc installed: ${glibcversion}"
elif [ "$(printf '%s\n'${glibcrequired}'\n' ${glibcversion} | sort -V | head -n 1)" != "${glibcrequired}" ]; then
elif [ "$(printf '%s\n'${glibcrequired}'\n' "${glibcversion}" | sort -V | head -n 1)" != "${glibcrequired}" ]; then
if [ "${glibcfix}" == "yes" ]; then
if [ "${function_selfname}" != "command_install.sh" ]; then
fn_print_dots "Glibc fix"

24
lgsm/functions/check_ip.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_ip.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Automatically identifies the server interface IP.
# If multiple interfaces are detected the user will need to manually set using ip="0.0.0.0".
@ -14,18 +14,19 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
else
ipcommand="ip"
fi
getip=$(${ipcommand} -o -4 addr|awk '{print $4}'|grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}'|grep -v 127.0.0)
getipwc=$(${ipcommand} -o -4 addr|awk '{print $4}'|grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}'|grep -vc 127.0.0)
getip=$(${ipcommand} -o -4 addr| awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}' | grep -v 127.0.0)
getipwc=$(${ipcommand} -o -4 addr| awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}' | grep -vc 127.0.0)
info_config.sh
info_parms.sh
# IP is not set to specific IP
if [ "${ip}" == "0.0.0.0" ]||[ "${ip}" == "" ]; then
fn_print_dots "Check IP"
sleep 1
sleep 0.5
# Multiple interfaces
if [ "${getipwc}" -ge "2" ]; then
fn_print_fail "Check IP: Multiple IP addresses found."
sleep 1
sleep 0.5
echo -en "\n"
# IP is set within game config
if [ "${ipsetinconfig}" == "1" ]; then
@ -50,14 +51,14 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
fi
echo -en "${getip}\n"
echo -en "\n"
echo -en "https://gameservermanagers.com/network-interfaces\n"
echo -en "https://linuxgsm.com/network-interfaces\n"
echo -en ""
fn_script_log_fatal "https://gameservermanagers.com/network-interfaces\n"
fn_script_log_fatal "https://linuxgsm.com/network-interfaces\n"
core_exit.sh
# Single interface
elif [ "${ipsetinconfig}" == "1" ]; then
fn_print_fail "Check IP: IP address not set in game config."
sleep 1
sleep 0.5
echo -en "\n"
fn_print_information "Specify the IP you want to bind within ${servercfg}.\n"
echo -en " * location: ${servercfgfullpath}\n"
@ -65,13 +66,16 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
echo -en "Set ${ipinconfigvar} to the following:\n"
echo -en "${getip}\n"
echo -en "\n"
echo -en "https://gameservermanagers.com/network-interfaces\n"
echo -en "https://linuxgsm.com/network-interfaces\n"
echo -en ""
fn_script_log_fatal "IP address not set in game config."
fn_script_log_fatal "Specify the IP you want to bind within: ${servercfgfullpath}."
fn_script_log_fatal "https://gameservermanagers.com/network-interfaces\n"
fn_script_log_fatal "https://linuxgsm.com/network-interfaces\n"
core_exit.sh
else
fn_print_info_nl "Check IP: ${getip}"
fn_script_log_info "IP automatically set as: ${getip}"
sleep 0.5
ip="${getip}"
fi
fi

2
lgsm/functions/check_logs.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_logs.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks if log files exist.
local commandname="CHECK"

36
lgsm/functions/check_permissions.sh

@ -2,24 +2,24 @@
# LinuxGSM check_permissions.sh
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks ownership & permissions of scripts, files and directories.
local commandname="CHECK"
fn_check_ownership(){
if [ -f "${rootdir}/${selfname}" ]; then
if [ $(find "${rootdir}/${selfname}" -not -user $(whoami)|wc -l) -ne "0" ]; then
if [ "$(find "${rootdir}/${selfname}" -not -user $(whoami) | wc -l)" -ne "0" ]; then
selfownissue=1
fi
fi
if [ -d "${functionsdir}" ]; then
if [ $(find "${functionsdir}" -not -user $(whoami)|wc -l) -ne "0" ]; then
if [ "$(find "${functionsdir}" -not -user $(whoami) | wc -l)" -ne "0" ]; then
funcownissue=1
fi
fi
if [ -d "${serverfiles}" ]; then
if [ $(find "${serverfiles}" -not -user $(whoami)|wc -l) -ne "0" ]; then
if [ "$(find "${serverfiles}" -not -user $(whoami) | wc -l)" -ne "0" ]; then
filesownissue=1
fi
fi
@ -31,13 +31,13 @@ fn_check_ownership(){
{
echo -e "User\tGroup\tFile\n"
if [ "${selfownissue}" == "1" ]; then
find "${rootdir}/${selfname}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
find "${rootdir}/${selfname}" -not -user "$(whoami)" -printf "%u\t\t%g\t%p\n"
fi
if [ "${funcownissue}" == "1" ]; then
find "${functionsdir}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
find "${functionsdir}" -not -user "$(whoami)" -printf "%u\t\t%g\t%p\n"
fi
if [ "${filesownissue}" == "1" ]; then
find "${serverfiles}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
find "${serverfiles}" -not -user "$(whoami)" -printf "%u\t\t%g\t%p\n"
fi
} | column -s $'\t' -t | tee -a "${lgsmlog}"
@ -54,7 +54,7 @@ fn_check_ownership(){
fn_check_permissions(){
if [ -d "${functionsdir}" ]; then
if [ $(find "${functionsdir}" -type f -not -executable|wc -l) -ne "0" ]; then
if [ "$(find "${functionsdir}" -type f -not -executable | wc -l)" -ne "0" ]; then
fn_print_fail_nl "Permissions issues found"
fn_script_log_fatal "Permissions issues found"
fn_print_information_nl "The following files are not executable:"
@ -102,9 +102,9 @@ fn_check_permissions(){
userexecperm="${execperm:0:1}"
groupexecperm="${execperm:1:1}"
# Check for invalid user permission
if [ "${userexecperm}" == "0" ] || [ "${userexecperm}" == "2" ] || [ "${userexecperm}" == "4" ] || [ "${userexecperm}" == "6" ]; then
if [ "${userexecperm}" == "0" ]||[ "${userexecperm}" == "2" ]||[ "${userexecperm}" == "4" ]||[ "${userexecperm}" == "6" ]; then
# If user permission is invalid, then check for invalid group permissions
if [ "${groupexecperm}" == "0" ] || [ "${groupexecperm}" == "2" ] || [ "${groupexecperm}" == "4" ] || [ "${groupexecperm}" == "6" ]; then
if [ "${groupexecperm}" == "0" ]||[ "${groupexecperm}" == "2" ]||[ "${groupexecperm}" == "4" ]||[ "${groupexecperm}" == "6" ]; then
# If permission issues are found
fn_print_warn_nl "Permissions issue found"
fn_script_log_warn "Permissions issue found"
@ -122,14 +122,14 @@ fn_check_permissions(){
# Grab the first and second digit for user and group permission
userexecperm="${execperm:0:1}"
groupexecperm="${execperm:1:1}"
if [ "${userexecperm}" == "0" ] || [ "${userexecperm}" == "2" ] || [ "${userexecperm}" == "4" ] || [ "${userexecperm}" == "6" ]; then
if [ "${groupexecperm}" == "0" ] || [ "${groupexecperm}" == "2" ] || [ "${groupexecperm}" == "4" ] || [ "${groupexecperm}" == "6" ]; then
if [ "${userexecperm}" == "0" ]||[ "${userexecperm}" == "2" ]||[ "${userexecperm}" == "4" ]||[ "${userexecperm}" == "6" ]; then
if [ "${groupexecperm}" == "0" ]||[ "${groupexecperm}" == "2" ]||[ "${groupexecperm}" == "4" ]||[ "${groupexecperm}" == "6" ]; then
# If errors are still found
fn_print_fail_nl "The following file could not be set executable:"
ls -l "${executabledir}/${execname}"
fn_script_log_warn "The following file could not be set executable:"
fn_script_log_info "${executabledir}/${execname}"
if [ "${monitorflag}" == 1 ]; then
if [ "${monitorflag}" == "1" ]; then
alert="permissions"
alert.sh
fi
@ -171,7 +171,7 @@ fn_sys_perm_fix_manually_msg(){
fn_script_log_info "To fix this issue, run the following command as root:"
echo " chmod a+rx /sys /sys/class /sys/class/net"
fn_script_log "chmod a+rx /sys /sys/class /sys/class/net"
sleep 1
sleep 0.5
if [ "${monitorflag}" == 1 ]; then
alert="permissions"
alert.sh
@ -184,7 +184,7 @@ fn_sys_perm_errors_fix(){
sudo -v > /dev/null 2>&1
if [ $? -eq 0 ]; then
fn_print_dots "Automatically fixing /sys permissions"
sleep 2
sleep 0.5
fn_script_log_info "Automatically fixing /sys permissions."
if [ "${sysdirpermerror}" == "1" ]; then
sudo chmod a+rx "/sys"
@ -200,13 +200,13 @@ fn_sys_perm_errors_fix(){
if [ "${sysdirpermerror}" == "1" ]||[ "${classdirpermerror}" == "1" ]||[ "${netdirpermerror}" == "1" ]; then
fn_print_error "Could not fix /sys permissions"
fn_script_log_error "Could not fix /sys permissions."
sleep 1
sleep 0.5
# Show the user how to fix
fn_sys_perm_fix_manually_msg
else
fn_print_ok_nl "Automatically fixing /sys permissions"
fn_script_log_pass "Permissions in /sys fixed"
sleep 1
sleep 0.5
fi
else
# Show the user how to fix
@ -221,7 +221,7 @@ fn_sys_perm_error_process(){
if [ "${sysdirpermerror}" == "1" ]||[ "${classdirpermerror}" == "1" ]||[ "${netdirpermerror}" == "1" ]; then
fn_print_error_nl "Permission error(s) found in /sys"
fn_script_log_error "Permission error(s) found in /sys"
sleep 1
sleep 0.5
# Run the fix
fn_sys_perm_errors_fix
fi

4
lgsm/functions/check_root.sh

@ -1,13 +1,13 @@
#!/bin/bash
# LinuxGSM check_root.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks if the user tried to run the script as root.
local commandname="CHECK"
local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
if [ $(whoami) = "root" ]; then
if [ "$(whoami)" = "root" ]; then
fn_print_fail_nl "Do NOT run this script as root!"
if [ -d "${lgsmlogdir}" ]; then
fn_script_log_fatal "${selfname} attempted to run as root."

6
lgsm/functions/check_status.sh

@ -2,7 +2,7 @@
# LinuxGSM check_status.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks the process status of the server. Either online or offline.
local commandname="CHECK"
@ -12,7 +12,7 @@ if [ "${gamename}" == "TeamSpeak 3" ]; then
# 1: Server is running
# 0: Server seems to have died
# 0: No server running (ts3server.pid is missing)
status=$(${executabledir}/ts3server_startscript.sh status servercfgfullpathfile=${servercfgfullpath})
status=$("${executabledir}/ts3server_startscript.sh" status servercfgfullpathfile=${servercfgfullpath})
if [ "${status}" == "Server is running" ]; then
status=1
else
@ -25,7 +25,7 @@ elif [ "${gamename}" == "Mumble" ]; then
info_config.sh
# 1: Server is listening
# 0: Server is not listening, considered closed
mumblepid=$(netstat -nap 2>/dev/null | grep udp | grep ${port} | grep murmur | awk '{ print $6 }' | awk -F'/' '{ print $1 }')
mumblepid=$(netstat -nap 2>/dev/null | grep udp | grep "${port}" | grep murmur | awk '{ print $6 }' | awk -F'/' '{ print $1 }')
if [ -z "${mumblepid}" ]; then
status=0
else

5
lgsm/functions/check_steamcmd.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_steamcmd.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks if SteamCMD is installed correctly.
local commandname="CHECK"
@ -40,7 +40,6 @@ fn_check_steamcmd_user(){
fi
steamuser="anonymous"
steampass=''
sleep 1
fi
}
@ -53,7 +52,7 @@ fn_check_steamcmd_sh(){
else
fn_print_error_nl "SteamCMD is missing"
fn_script_log_error "SteamCMD is missing"
sleep 1
sleep 0.5
fn_install_steamcmd
fi
elif [ "${function_selfname}" == "command_install.sh" ]; then

2
lgsm/functions/check_system_dir.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_system_dir.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks if systemdir/serverfiles is accessible.
local commandname="CHECK"

6
lgsm/functions/check_system_requirements.sh

@ -2,7 +2,7 @@
# LinuxGSM check_system_requirements.sh
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks RAM requirements
local commandname="CHECK"
@ -39,8 +39,8 @@ if [ -n "${ramrequirementmb}" ]; then
sleep 0.5
# Warn the user
fn_print_warn_nl "Check RAM: ${ramrequirementgb}G required, ${physmemtotal} available"
sleep 1
sleep 0.5
echo " * ${gamename} server may fail to run or experience poor performance."
sleep 1
sleep 0.5
fi
fi

2
lgsm/functions/check_tmuxception.sh

@ -2,7 +2,7 @@
# LinuxGSM check_config.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Checks if run from tmux or screen
local commandname="check"

30
lgsm/functions/command_backup.sh

@ -2,7 +2,7 @@
# LinuxGSM command_backup.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Creates a .tar.gz file in the backup directory.
local commandname="BACKUP"
@ -17,7 +17,7 @@ fn_backup_trap(){
echo -ne "backup ${backupname}.tar.gz..."
fn_print_canceled_eol_nl
fn_script_log_info "Backup ${backupname}.tar.gz: CANCELED"
sleep 1
sleep 0.5
rm -f "${backupdir}/${backupname}.tar.gz" | tee -a "${lgsmlog}"
echo -ne "backup ${backupname}.tar.gz..."
fn_print_removed_eol_nl
@ -44,9 +44,9 @@ fn_backup_init(){
info_distro.sh
fn_print_dots "Backup starting"
fn_script_log_info "Backup starting"
sleep 1
sleep 0.5
fn_print_ok "Backup starting"
sleep 1
sleep 0.5
echo -ne "\n"
if [ ! -d "${backupdir}" ]||[ "${backupcount}" == "0" ]; then
fn_print_info_nl "There are no previous backups"
@ -59,11 +59,11 @@ fn_backup_init(){
daysago="${lastbackupdaysago} days ago"
fi
echo " * Previous backup was created ${daysago}, total size ${lastbackupsize}"
sleep 1
sleep 0.5
fi
}
# Check if server is started and wether to stop it
# Check if server is started and whether to stop it
fn_backup_stop_server(){
check_status.sh
# Server is stopped
@ -80,7 +80,7 @@ fn_backup_stop_server(){
else
fn_print_warn_nl "${servicename} will be stopped during the backup"
fn_script_log_warn "${servicename} will be stopped during the backup"
sleep 4
sleep 5
serverstopped="yes"
exitbypass=1
command_stop.sh
@ -131,7 +131,7 @@ fn_backup_compression(){
fn_script_log_fatal "Starting backup"
else
fn_print_ok_eol
sleep 1
sleep 0.5
fn_print_ok_nl "Completed: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
fn_script_log_pass "Backup created: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
fi
@ -153,18 +153,18 @@ fn_backup_prune(){
if [ "${backupquotadiff}" -gt "0" ]||[ "${backupsoudatedcount}" -gt "0" ]; then
fn_print_dots "Pruning"
fn_script_log_info "Backup pruning activated"
sleep 1
sleep 0.5
fn_print_ok_nl "Pruning"
sleep 1
sleep 0.5
# If maxbackups greater or equal to backupsoutdatedcount, then it is over maxbackupdays
if [ "${backupquotadiff}" -ge "${backupsoudatedcount}" ]; then
# Display how many backups will be cleared
echo " * Pruning: ${backupquotadiff} backup(s) has exceeded the ${maxbackups} backups limit"
fn_script_log_info "Pruning: ${backupquotadiff} backup(s) has exceeded the ${maxbackups} backups limit"
sleep 1
sleep 0.5
fn_print_dots "Pruning: Clearing ${backupquotadiff} backup(s)"
fn_script_log_info "Pruning: Clearing ${backupquotadiff} backup(s)"
sleep 1
sleep 0.5
# Clear backups over quota
find "${backupdir}"/ -type f -name "*.tar.gz" -printf '%T@ %p\n' | sort -rn | tail -${backupquotadiff} | cut -f2- -d" " | xargs rm
fn_print_ok_nl "Pruning: Clearing ${backupquotadiff} backup(s)"
@ -174,16 +174,16 @@ fn_backup_prune(){
# Display how many backups will be cleared
echo " * Pruning: ${backupsoudatedcount} backup(s) are older than ${maxbackupdays} days."
fn_script_log_info "Pruning: ${backupsoudatedcount} backup(s) older than ${maxbackupdays} days."
sleep 1
sleep 0.5
fn_print_dots "Pruning: Clearing ${backupquotadiff} backup(s)."
fn_script_log_info "Pruning: Clearing ${backupquotadiff} backup(s)"
sleep 1
sleep 0.5
# Clear backups over quota
find "${backupdir}"/ -type f -mtime +"${maxbackupdays}" -exec rm -f {} \;
fn_print_ok_nl "Pruning: Clearing ${backupquotadiff} backup(s)"
fn_script_log_pass "Pruning: Cleared ${backupquotadiff} backup(s)"
fi
sleep 1
sleep 0.5
fi
fi
}

10
lgsm/functions/command_console.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_console.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Gives access to the server tmux console.
local commandname="CONSOLE"
@ -24,19 +24,19 @@ if ! fn_prompt_yn "Continue?" Y; then
echo Exiting; return
fi
fn_print_dots "Accessing console"
sleep 1
sleep 0.5
check_status.sh
if [ "${status}" != "0" ]; then
fn_print_ok_nl "Accessing console"
fn_script_log_pass "Console accessed"
sleep 1
tmux attach-session -t ${servicename}
sleep 0.5
tmux attach-session -t="${servicename}"
fn_print_ok_nl "Closing console"
fn_script_log_pass "Console closed"
else
fn_print_error_nl "Server not running"
fn_script_log_error "Failed to access: Server not running"
sleep 1
sleep 0.5
if fn_prompt_yn "Do you want to start the server?" Y; then
exitbypass=1
command_start.sh

14
lgsm/functions/command_debug.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_debug.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Runs the server without tmux and directly from the terminal.
local commandname="DEBUG"
@ -40,7 +40,7 @@ if [ -n "${glibcrequired}" ]; then
:
elif [ "${glibcrequired}" == "UNKNOWN" ]; then
echo -e "${blue}GLIBC required:\t${red}${glibcrequired}"
elif [ "$(printf '%s\n'${glibcrequired}'\n' ${glibcversion} | sort -V | head -n 1)" != "${glibcrequired}" ]; then
elif [ "$(printf '%s\n'${glibcrequired}'\n' "${glibcversion}" | sort -V | head -n 1)" != "${glibcrequired}" ]; then
if [ "${glibcfix}" == "yes" ]; then
echo -e "${blue}GLIBC required:\t${red}${glibcrequired} ${default}(${green}Using GLIBC fix${default})"
else
@ -80,12 +80,12 @@ fi
fn_print_info_nl "Stopping any running servers"
fn_script_log_info "Stopping any running servers"
sleep 1
sleep 0.5
exitbypass=1
command_stop.sh
fn_print_dots "Starting debug"
fn_script_log_info "Starting debug"
sleep 1
sleep 0.5
fn_print_ok_nl "Starting debug"
# Create lockfile
@ -95,16 +95,16 @@ fn_script_log_info "${rootdir}/${lockselfname}"
# trap to remove lockfile on quit.
trap fn_lockfile_trap INT
cd "${executabledir}"
cd "${executabledir}" || exit
if [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
${executable} ${parms} -debug
elif [ "${engine}" == "realvirtuality" ]; then
# Arma3 requires semicolons in the module list, which need to
# be escaped for regular (tmux) loading, but need to be
# stripped when loading straight from the console.
${executable} ${parms//\\;/;}
"${executable}" "${parms//\\;/;}"
else
${executable} ${parms}
"${executable}" "${parms}"
fi
fn_print_dots "Stopping debug"

5
lgsm/functions/command_details.sh

@ -2,7 +2,7 @@
# LinuxGSM command_details.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Displays server information.
local commandname="DETAILS"
@ -12,10 +12,11 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# Run checks and gathers details to display.
check.sh
info_config.sh
info_parms.sh
info_distro.sh
info_glibc.sh
info_parms.sh
info_messages.sh
query_gamedig.sh
fn_info_message_distro
fn_info_message_performance
fn_info_message_disk

14
lgsm/functions/command_dev_clear_functions.sh

@ -0,0 +1,14 @@
#!/bin/bash
# command_dev_clear_functions.sh function
# Author: Daniel Gibbs
# Website: https://linuxgsm.com
# Description: Deletes the contents of the functions dir.
echo "================================="
echo "Clear Functions"
echo "================================="
echo ""
if fn_prompt_yn "Do you want to delete all functions?" Y; then
rm -rfv "${functionsdir}/*"
fi
core_exit.sh

2
lgsm/functions/command_dev_debug.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_dev_debug.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Dev only: Enables debugging log to be saved to dev-debug.log.
local commandname="DEV-DEBUG"

16
lgsm/functions/command_dev_detect_deps.sh

@ -1,11 +1,11 @@
#!/bin/bash
# LinuxGSM command_dev_detect_deps.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Detects dependencies the server binary requires.
local commandname="DEPS-DETECT"
local commandaction="Deps-Detect"
local commandname="DETECT-DEPS"
local commandaction="Detect-Deps"
local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
echo "================================="
@ -20,13 +20,13 @@ elif [ "$(command -v readelf 2>/dev/null)" ]; then
else
echo "readelf/eu-readelf not installed"
fi
files=$(find ${serverfiles} | wc -l)
files=$(find "${serverfiles}" | wc -l)
find "${serverfiles}" -type f -print0 |
while IFS= read -r -d $'\0' line; do
if [ "${readelf}" == "eu-readelf" ]; then
${readelf} -d "${line}" 2>/dev/null|grep NEEDED|awk '{ print $4 }'|sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
${readelf} -d "${line}" 2>/dev/null | grep NEEDED| awk '{ print $4 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
else
${readelf} -d "${line}" 2>/dev/null|grep NEEDED|awk '{ print $5 }'|sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
${readelf} -d "${line}" 2>/dev/null | grep NEEDED | awk '{ print $5 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
fi
echo -n "${i} / ${files}" $'\r'
((i++))
@ -34,7 +34,7 @@ done
sort "${tmpdir}/.depdetect_readelf" |uniq >"${tmpdir}/.depdetect_readelf_uniq"
while read lib; do
while read -r lib; do
if [ "${lib}" == "libm.so.6" ]||[ "${lib}" == "libc.so.6" ]||[ "${lib}" == "libtcmalloc_minimal.so.4" ]||[ "${lib}" == "libpthread.so.0" ]||[ "${lib}" == "libdl.so.2" ]||[ "${lib}" == "libnsl.so.1" ]||[ "${lib}" == "libgcc_s.so.1" ]||[ "${lib}" == "librt.so.1" ]||[ "${lib}" == "ld-linux.so.2" ]; then
echo "glibc.i686" >> "${tmpdir}/.depdetect_centos_list"
echo "lib32gcc1" >> "${tmpdir}/.depdetect_ubuntu_list"
@ -114,7 +114,7 @@ fi
echo ""
echo "Required Librarys"
echo "================================="
sort "${tmpdir}/.depdetect_readelf" |uniq
sort "${tmpdir}/.depdetect_readelf" | uniq
echo -en "\n"
rm -f "${tmpdir}/.depdetect_centos_line"
rm -f "${tmpdir}/.depdetect_centos_list"

16
lgsm/functions/command_dev_detect_glibc.sh

@ -1,10 +1,14 @@
#!/bin/bash
# LinuxGSM command_dev_detect_glibc.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Automatically detects the version of GLIBC that is required.
# Can check a file or directory recursively.
local commandname="DETECT-GLIBC"
local commandaction="Detect-Glibc"
local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
echo "================================="
echo "GLIBC Requirements Checker"
echo "================================="
@ -28,21 +32,21 @@ elif [ -f "${serverfiles}" ]; then
fi
echo ""
files=$(find ${serverfiles} | wc -l)
find ${serverfiles} -type f -print0 |
files=$(find "${serverfiles}" | wc -l)
find "${serverfiles}" -type f -print0 |
while IFS= read -r -d $'\0' line; do
glibcversion=$(objdump -T "${line}" 2>/dev/null|grep -oP "GLIBC[^ ]+" |grep -v GLIBCXX|sort|uniq|sort -r --version-sort| head -n 1)
glibcversion=$(objdump -T "${line}" 2>/dev/null | grep -oP "GLIBC[^ ]+" | grep -v GLIBCXX | sort | uniq | sort -r --version-sort | head -n 1)
if [ "${glibcversion}" ]; then
echo "${glibcversion}: ${line}" >>"${tmpdir}/detect_glibc_files.tmp"
fi
objdump -T "${line}" 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp"
objdump -T "${line}" 2>/dev/null | grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp"
echo -n "${i} / ${files}" $'\r'
((i++))
done
echo ""
cat "${tmpdir}/detect_glibc_files.tmp"
echo ""
cat "${tmpdir}/detect_glibc.tmp"|sort|uniq|sort -r --version-sort
cat "${tmpdir}/detect_glibc.tmp" | sort | uniq | sort -r --version-sort
rm "${tmpdir}/detect_glibc.tmp"
rm "${tmpdir}/detect_glibc_files.tmp"

18
lgsm/functions/command_dev_detect_ldd.sh

@ -1,10 +1,14 @@
#!/bin/bash
# command_dev_detect_ldd.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Automatically detects required deps using ldd.
# Can check a file or directory recursively.
local commandname="DETECT-LDD"
local commandaction="Detect-LDD"
local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
echo "================================="
echo "Shared Object dependencies Checker"
echo "================================="
@ -25,14 +29,14 @@ echo ""
files=$(find "${serverfiles}" | wc -l)
find "${serverfiles}" -type f -print0 |
while IFS= read -r -d $'\0' line; do
#ldd -v $line 2>/dev/null|grep "=>" >>"${tmpdir}/detect_ldd.tmp"
if [ -n "$(ldd ${line} 2>/dev/null |grep -v "not a dynamic executable")" ]; then
if ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable"
then
echo "${line}" >> "${tmpdir}/detect_ldd.tmp"
ldd "${line}" 2>/dev/null |grep -v "not a dynamic executable" >> "${tmpdir}/detect_ldd.tmp"
if [ -n "$(ldd $line 2>/dev/null |grep -v "not a dynamic executable"|grep "not found")" ]; then
ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" >> "${tmpdir}/detect_ldd.tmp"
if ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" | grep "not found"
then
echo "${line}" >> "${tmpdir}/detect_ldd_not_found.tmp"
ldd "${line}" 2>/dev/null |grep -v "not a dynamic executable"|grep "not found" >> "${tmpdir}/detect_ldd_not_found.tmp"
ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" | grep "not found" >> "${tmpdir}/detect_ldd_not_found.tmp"
fi
fi
echo -n "$i / $files" $'\r'

44
lgsm/functions/command_dev_query_raw.sh

@ -0,0 +1,44 @@
#!/bin/bash
# command_dev_query_raw.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Raw gamedig output of the server.
local commandname="QUERY-RAW"
local commandaction="QUERY-RAW"
local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
echo "================================="
echo "Gamedig Raw Output"
echo "================================="
echo""
if [ ! "$(command -v gamedig 2>/dev/null)" ]; then
fn_print_failure_nl "gamedig not installed"
fi
if [ ! "$(command -v jq 2>/dev/null)" ]; then
fn_print_failure_nl "jq not installed"
fi
check.sh
info_config.sh
info_parms.sh
if [ "${engine}" == "idtech3_ql" ]; then
local engine="quakelive"
elif [ "${gamename}" == "Killing Floor 2" ]; then
local engine="unreal4"
fi
query_gamedig.sh
echo "gamedig --type \"${gamedigengine}\" --host \"${ip}\" --port \"${port}\"|jq"
echo""
echo "${gamedigraw}" | jq
echo""
echo "================================="
echo "gsquery Raw Output"
echo "================================="
echo""
echo "./query_gsquery.py -a \"${ip}\" -p \"${port}\" -e \"${engine}\""
if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5"
fi
"${functionsdir}"/query_gsquery.py -a "${ip}" -p "${port}" -e "${engine}"

18
lgsm/functions/command_fastdl.sh

@ -2,7 +2,7 @@
# LinuxGSM command_fastdl.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Creates a FastDL directory.
local commandname="FASTDL"
@ -69,7 +69,7 @@ fn_clear_old_fastdl(){
echo -en "clearing existing FastDL directory ${fastdldir}..."
rm -R "${fastdldir:?}"
exitcode=$?
if [ "${exitcode}" -ne 0 ]; then
if [ ${exitcode} -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Clearing existing FastDL directory ${fastdldir}"
core_exit.sh
@ -271,7 +271,7 @@ fn_fastdl_gmod(){
fi
# Clear addons directory in fastdl
echo -en "clearing addons dir from fastdl dir..."
sleep 1
sleep 0.5
rm -R "${fastdldir:?}/addons"
exitcode=$?
if [ ${exitcode} -ne 0 ]; then
@ -286,7 +286,7 @@ fn_fastdl_gmod(){
# Correct content that may be into a lua directory by mistake like some darkrpmodification addons
if [ -d "${fastdldir}/lua" ]; then
echo -en "correcting DarkRP files..."
sleep 2
sleep 1
cp -Rf "${fastdldir}/lua/"* "${fastdldir}"
exitcode=$?
if [ ${exitcode} -ne 0 ]; then
@ -302,7 +302,7 @@ fn_fastdl_gmod(){
totalfiles=$(wc -l < "${tmpdir}/fastdl_files_to_compress.txt")
# Calculates total file size
while read dufile; do
filesize=$(du -b "${dufile}"| awk '{ print $1 }')
filesize=$(du -b "${dufile}" | awk '{ print $1 }')
filesizetotal=$(( ${filesizetotal} + ${filesize} ))
done <"${tmpdir}/fastdl_files_to_compress.txt"
fi
@ -337,7 +337,7 @@ fn_fastdl_source(){
fi
cp "${fastdlfile}" "${fastdldir}/${directory}"
exitcode=$?
if [ "${exitcode}" -ne 0 ]; then
if [ ${exitcode} -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Copying ${fastdlfile} > ${fastdldir}/${directory}"
core_exit.sh
@ -373,7 +373,7 @@ fn_fastdl_gmod_dl_enforcer(){
echo -en "removing existing download enforcer: ${luafastdlfile}..."
rm "${luafastdlfullpath:?}"
exitcode=$?
if [ "${exitcode}" -ne 0 ]; then
if [ ${exitcode} -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Removing existing download enforcer ${luafastdlfullpath}"
core_exit.sh
@ -391,7 +391,7 @@ fn_fastdl_gmod_dl_enforcer(){
echo "resource.AddFile( \"${line}\" )" >> "${luafastdlfullpath}"
done < <(find "${fastdldir:?}" \( -type f ! -name "*.bz2" \) -printf '%P\n')
exitcode=$?
if [ "${exitcode}" -ne 0 ]; then
if [ ${exitcode} -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Creating new download enforcer ${luafastdlfullpath}"
core_exit.sh
@ -408,7 +408,7 @@ fn_fastdl_bzip2(){
echo -en "\r\033[Kcompressing ${filetocompress}..."
bzip2 -f "${filetocompress}"
exitcode=$?
if [ "${exitcode}" -ne 0 ]; then
if [ ${exitcode} -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Compressing ${filetocompress}"
core_exit.sh

2
lgsm/functions/command_install.sh

@ -2,7 +2,7 @@
# LinuxGSM command_install.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Overall function for the installer.
local commandname="INSTALL"

2
lgsm/functions/command_install_resources_mta.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_install_resources_mta.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Installs the default resources for Multi Theft Auto.
local commandname="DEFAULT_RESOURCES"

6
lgsm/functions/command_mods_install.sh

@ -2,7 +2,7 @@
# LinuxGSM command_mods_install.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: List and installs available mods along with mods_list.sh and mods_core.sh.
local commandname="MODS"
@ -16,7 +16,7 @@ fn_print_header
# Displays a list of installed mods
fn_mods_installed_list
if [ ${installedmodscount} -gt 0 ]; then
if [ "${installedmodscount}" -gt "0" ]; then
echo "Installed addons/mods"
echo "================================="
# Go through all available commands, get details and display them to the user
@ -85,7 +85,7 @@ if [ -f "${modsinstalledlistfullpath}" ]; then
if [ -n "$(sed -n "/^${modcommand}$/p" "${modsinstalledlistfullpath}")" ]; then
fn_print_warning_nl "${modprettyname} is already installed"
fn_script_log_warn "${modprettyname} is already installed"
sleep 1
sleep 0.5
echo " * Any configs may be overwritten."
if ! fn_prompt_yn "Continue?" Y; then
echo Exiting; core_exit.sh

8
lgsm/functions/command_mods_remove.sh

@ -2,7 +2,7 @@
# LinuxGSM command_mods_uninstall.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Uninstall mods along with mods_list.sh and mods_core.sh.
local commandname="MODS"
@ -58,7 +58,7 @@ fn_script_log_info "Removing ${modsfilelistsize} files from ${modprettyname}"
echo -e "removing ${modprettyname}"
echo -e "* ${modsfilelistsize} files to be removed"
echo -e "* location: ${modinstalldir}"
sleep 1
sleep 0.5
# Go through every file and remove it
modfileline="1"
tput sc
@ -68,7 +68,7 @@ while [ "${modfileline}" -le "${modsfilelistsize}" ]; do
# If file or directory exists, then remove it
if [ -f "${modinstalldir}/${currentfileremove}" ]||[ -d "${modinstalldir}/${currentfileremove}" ]; then
rm -rf "${modinstalldir}/${currentfileremove}"
rm -rf "${modinstalldir:?}/${currentfileremove}"
((exitcode=$?))
if [ ${exitcode} -ne 0 ]; then
fn_script_log_fatal "Removing ${modinstalldir}/${currentfileremove}"
@ -78,7 +78,7 @@ while [ "${modfileline}" -le "${modsfilelistsize}" ]; do
fi
fi
tput rc; tput el
printf "removing ${modprettyname} ${modfileline} / ${modsfilelistsize} : ${currentfileremove}..."
echo "removing ${modprettyname} ${modfileline} / ${modsfilelistsize} : ${currentfileremove}..."
((modfileline++))
done
if [ ${exitcode} -ne 0 ]; then

8
lgsm/functions/command_mods_update.sh

@ -2,7 +2,7 @@
# LinuxGSM command_mods_update.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Updates installed mods along with mods_list.sh and mods_core.sh.
local commandname="MODS"
@ -27,7 +27,7 @@ fn_remove_cfg_files(){
echo -e " * serverfiles/${filetopreserve}"
# If it matches an existing file that have been extracted delete the file
if [ -f "${extractdir}/${filetopreserve}" ]||[ -d "${extractdir}/${filetopreserve}" ]; then
rm -r "${extractdir}/${filetopreserve}"
rm -r "${extractdir:?}/${filetopreserve}"
# Write the file path in a tmp file, to rebuild a full file list as it is rebuilt upon update
if [ ! -f "${modsdir}/.removedfiles.tmp" ]; then
touch "${modsdir}/.removedfiles.tmp"
@ -66,13 +66,13 @@ for ((ulindex=0; ulindex < ${#installedmodslist[@]}; ulindex++)); do
echo -e " * ${yellow}${modprettyname}${default} (retain common custom files)"
fi
done
sleep 1
sleep 0.5
## Update
# List all installed mods and apply update
# Reset line value
installedmodsline="1"
while [ ${installedmodsline} -le ${installedmodscount} ]; do
while [ "${installedmodsline}" -le "${installedmodscount}" ]; do
currentmod="$(sed "${installedmodsline}q;d" "${modsinstalledlistfullpath}")"
if [ -n "${currentmod}" ]; then
fn_mod_get_info

204
lgsm/functions/command_monitor.sh

@ -2,14 +2,84 @@
# LinuxGSM command_monitor.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Monitors server by checking for running processes.
# then passes to monitor_gsquery.sh.
# then passes to gamedig and gsquery.
local commandname="MONITOR"
local commandaction="Monitor"
local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_monitor_loop(){
# Will query up to 5 times every 15 seconds.
# Query will wait up to 60 seconds to confirm server is down giving server time if changing map.
for queryattempt in {1..5}; do
fn_print_dots "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
fn_print_querying_eol
fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt} : QUERYING"
sleep 0.5
if [ "${querymethod}" == "gamedig" ]; then
query_gamedig.sh
elif [ "${querymethod}" == "gsquery" ]; then
if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5"
fi
"${functionsdir}"/query_gsquery.py -a "${ip}" -p "${queryport}" -e "${engine}" > /dev/null 2>&1
querystatus="$?"
elif [ "${querymethod}" == "telnet" ]; then
bash -c 'exec 3<> /dev/tcp/'${ip}'/'${queryport}''
querystatus="$?"
fi
if [ "${querystatus}" == "0" ]; then
# Server query OK
sleep 0.5
fn_print_ok "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
fn_print_ok_eol_nl
fn_script_log_pass "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: OK"
exitcode=0
monitorpass=1
core_exit.sh
else
# Server query FAIL
fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: FAIL"
fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
fn_print_fail_eol
sleep 0.5
# monitor try gamedig first then gsquery before restarting
if [ "${querymethod}" == "gsquery" ]; then
if [ "${totalseconds}" -ge "59" ]; then
# Server query FAIL for over 59 seconds reboot server
fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
fn_print_fail_eol_nl
fn_script_log_error "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: FAIL"
sleep 0.5
# Send alert if enabled
alert="restartquery"
alert.sh
command_restart.sh
core_exit.sh
fi
elif [ "${querymethod}" == "gamedig" ]; then
if [ "${totalseconds}" -ge "29" ]; then
break
fi
fi
# Seconds counter
for seconds in {1..15}; do
fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: WAIT"
totalseconds=$((totalseconds + 1))
sleep 1
if [ "${seconds}" == "15" ]; then
break
fi
done
fi
done
}
fn_monitor_check_lockfile(){
# Monitor does not run it lockfile is not found
if [ ! -f "${rootdir}/${lockselfname}" ]; then
@ -22,102 +92,104 @@ fn_monitor_check_lockfile(){
fn_monitor_check_update(){
# Monitor will not check if update is running.
if [ "$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)" != "0" ]; then
if [ "$(ps -ef | grep "${selfname} update" | grep -v grep | wc -l)" != "0" ]; then
fn_print_error_nl "SteamCMD is currently checking for updates"
fn_script_log_error "SteamCMD is currently checking for updates"
sleep 1
sleep 0.5
core_exit.sh
fi
}
fn_monitor_msg_checking(){
fn_monitor_check_session(){
fn_print_dots "Checking session: "
fn_print_checking_eol
fn_script_log_info "Checking session: CHECKING"
sleep 1
}
fn_monitor_teamspeak3(){
sleep 0.5
if [ "${status}" != "0" ]; then
fn_print_ok "Checking session: "
fn_print_ok_eol_nl
fn_script_log_pass "Checking session: OK"
else
fn_print_error "Checking session: ${ts3error}: "
if [ "${gamename}" == "TeamSpeak 3" ]; then
fn_print_error "Checking session: ${ts3error}: "
elif [ "${gamename}" == "Mumble" ]; then
fn_print_error "Checking session: Not listening to port ${queryport}"
else
fn_print_error "Checking session: "
fi
fn_print_fail_eol_nl
fn_script_log_error "Checking session: ${ts3error}: FAIL"
failurereason="${ts3error}"
fn_script_log_error "Checking session: FAIL"
alert="restart"
alert.sh
fn_script_log_info "Monitor is starting ${servername}"
sleep 1
sleep 0.5
command_restart.sh
fi
sleep 0.5
}
fn_monitor_mumble(){
if [ "${status}" != "0" ]; then
fn_print_ok "Checking session: "
fn_print_ok_eol_nl
fn_script_log_pass "Checking session: OK"
else
fn_print_error "Checking session: Not listening to port ${port}"
fn_print_fail_eol_nl
fn_script_log_error "Checking session: Not listening to port ${port}"
failurereason="Checking session: Not listening to port ${port}"
alert="restart"
alert.sh
fn_script_log_info "Monitor is starting ${servername}"
sleep 1
command_restart.sh
fi
}
fn_monitor_tmux(){
# checks that tmux session is running
if [ "${status}" != "0" ]; then
fn_print_ok "Checking session: "
fn_print_ok_eol_nl
fn_script_log_pass "Checking session: OK"
# runs gsquery check on game with specific engines.
local allowed_engines_array=( avalanche2.0 avalanche3.0 goldsource idtech2 idtech3 idtech3_ql iw2.0 iw3.0 madness quake refractor realvirtuality source spark starbound unity3d unreal unreal2 )
for allowed_engine in "${allowed_engines_array[@]}"
do
if [ "${allowed_engine}" == "starbound" ]; then
info_config.sh
if [ "${queryenabled}" == "true" ]; then
monitor_gsquery.sh
fi
elif [ "${allowed_engine}" == "${engine}" ]; then
monitor_gsquery.sh
fn_monitor_query(){
fn_script_log_info "Querying port: query enabled"
# engines that work with query
local allowed_engines_array=( avalanche2.0 avalanche3.0 goldsource idtech2 idtech3 idtech3_ql iw2.0 iw3.0 madness quake refractor realvirtuality source spark starbound unity3d unreal unreal2 unreal4 )
for allowed_engine in "${allowed_engines_array[@]}"
do
if [ "${allowed_engine}" == "${engine}" ]; then
if [ "${engine}" == "idtech3_ql" ]; then
local engine="quakelive"
elif [ "${gamename}" == "Killing Floor 2" ]; then
local engine="unreal4"
fi
done
else
fn_print_error "Checking session: "
fn_print_fail_eol_nl
fn_script_log_error "Checking session: FAIL"
alert="restart"
alert.sh
fn_script_log_info "Monitor is starting ${servername}"
sleep 1
command_restart.sh
fi
# will first attempt to use gamedig then gsquery
totalseconds=0
local query_methods_array=( gamedig gsquery )
for query_method in "${query_methods_array[@]}"
do
if [ "${query_method}" == "gamedig" ]; then
# will bypass gamedig if not installed
if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ]; then
if [ -z "${monitorpass}" ]; then
querymethod="${query_method}"
fn_monitor_loop
fi
fi
else
if [ -z "${monitorpass}" ]; then
querymethod="${query_method}"
fn_monitor_loop
fi
fi
done
fi
done
}
fn_monitor_query_telnet(){
querymethod="telnet"
fn_monitor_loop
}
monitorflag=1
fn_print_dots "${servername}"
sleep 1
sleep 0.5
check.sh
logs.sh
info_config.sh
info_parms.sh
fn_monitor_check_lockfile
fn_monitor_check_update
fn_monitor_msg_checking
if [ "${gamename}" == "TeamSpeak 3" ]; then
fn_monitor_teamspeak3
elif [ "${gamename}" == "Mumble" ]; then
fn_monitor_mumble
fn_monitor_check_session
# Query has to be enabled in Starbound config
if [ "${gamename}" == "Starbound" ]; then
if [ "${queryenabled}" == "true" ]; then
fn_monitor_query
fi
elif [ "${gamename}" == "TeamSpeak 3" ]; then
fn_monitor_query_telnet
else
fn_monitor_tmux
fn_monitor_query
fi
core_exit.sh
core_exit.sh

6
lgsm/functions/command_postdetails.sh

@ -2,7 +2,7 @@
# LinuxGSM command_postdetails.sh function
# Author: CedarLUG
# Contributor: CedarLUG
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Strips sensitive information out of Details output
local commandname="postdetails"
@ -74,7 +74,7 @@ fi
if [ "${posttarget}" == "http://pastebin.com" ] ; then
fn_print_dots "Posting details to pastbin.com for ${postexpire}"
sleep 1
sleep 0.5
# grab the return from 'value' from an initial visit to pastebin.
csrftoken=$(${curlpath} -s "${posttarget}" |
sed -n 's/^.*input type="hidden" name="csrf_token_post" value="\(.*\)".*$/\1/p')
@ -94,7 +94,7 @@ if [ "${posttarget}" == "http://pastebin.com" ] ; then
echo " Please share the following url for support: ${pdurl}"
elif [ "${posttarget}" == "https://hastebin.com" ] ; then
fn_print_dots "Posting details to hastebin.com"
sleep 1
sleep 0.5
# hastebin is a bit simpler. If successful, the returned result
# should look like: {"something":"key"}, putting the reference that
# we need in "key". TODO - error handling. -CedarLUG

2
lgsm/functions/command_restart.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_restart.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Restarts the server.
local commandname="RESTART"

45
lgsm/functions/command_start.sh

@ -2,7 +2,7 @@
# LinuxGSM command_start.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Starts the server.
local commandname="START"
@ -15,16 +15,16 @@ fn_start_teamspeak3(){
fn_script_log_warn "${servercfgfullpath} is missing"
echo " * Creating blank ${servercfg}"
fn_script_log_info "Creating blank ${servercfg}"
sleep 2
sleep 1
echo " * ${servercfg} can remain blank by default."
fn_script_log_info "${servercfgfullpath} can remain blank by default."
sleep 2
sleep 1
echo " * ${servercfg} is located in ${servercfgfullpath}."
fn_script_log_info "${servercfg} is located in ${servercfgfullpath}."
sleep 5
touch "${servercfgfullpath}"
fi
sleep 1
sleep 0.5
check_status.sh
if [ "${status}" != "0" ]; then
fn_print_info_nl "${servername} is already running"
@ -42,7 +42,7 @@ fn_start_teamspeak3(){
if [ ! -f "${executabledir}/.ts3server_license_accepted" ]; then
fn_script_log "Accepting ts3server license: ${executabledir}/LICENSE"
fn_print_info_nl "Accepting TeamSpeak license:"
fn_print_info_nl " * ${executabledir}/LICENSE"
echo " * ${executabledir}/LICENSE"
sleep 3
touch "${executabledir}/.ts3server_license_accepted"
fi
@ -52,7 +52,7 @@ fn_start_teamspeak3(){
else
./ts3server_startscript.sh start inifile="${servercfgfullpath}" > /dev/null 2>&1
fi
sleep 1
sleep 0.5
check_status.sh
if [ "${status}" == "0" ]; then
fn_print_fail_nl "Unable to start ${servername}"
@ -112,31 +112,31 @@ fn_start_tmux(){
touch "${consolelog}"
# Get tmux version
tmuxversion="$(tmux -V|sed "s/tmux //"|sed -n '1 p')"
tmuxversion="$(tmux -V | sed "s/tmux //" | sed -n '1 p')"
# Tmux compiled from source will return "master", therefore ignore it
if [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p')" == "master" ]; then
if [ "$(tmux -V | sed "s/tmux //" | sed -n '1 p')" == "master" ]; then
fn_script_log "Tmux version: master (user compiled)"
echo "Tmux version: master (user compiled)" >> "${consolelog}"
if [ "${consolelogging}" == "on" ]||[ -z "${consolelogging}" ]; then
tmux pipe-pane -o -t "${servicename}" "exec cat >> '${consolelog}'"
tmux pipe-pane -o -t="${servicename}" "exec cat >> '${consolelog}'"
fi
elif [ -n "${tmuxversion}" ]; then
# Get the digit version of tmux
tmuxversion="$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')"
tmuxversion="$(tmux -V | sed "s/tmux //" | sed -n '1 p' | tr -cd '[:digit:]')"
# tmux pipe-pane not supported in tmux versions < 1.6
if [ "${tmuxversion}" -lt "16" ]; then
echo "Console logging disabled: Tmux => 1.6 required
https://gameservermanagers.com/tmux-upgrade
https://linuxgsm.com/tmux-upgrade
Currently installed: $(tmux -V)" > "${consolelog}"
# Console logging disabled: Bug in tmux 1.8 breaks logging
elif [ "${tmuxversion}" -eq "18" ]; then
echo "Console logging disabled: Bug in tmux 1.8 breaks logging
https://gameservermanagers.com/tmux-upgrade
https://linuxgsm.com/tmux-upgrade
Currently installed: $(tmux -V)" > "${consolelog}"
# Console logging enable or not set
elif [ "${consolelogging}" == "on" ]||[ -z "${consolelogging}" ]; then
tmux pipe-pane -o -t "${servicename}" "exec cat >> '${consolelog}'"
tmux pipe-pane -o -t="${servicename}" "exec cat >> '${consolelog}'"
fi
else
echo "Unable to detect tmux version" >> "${consolelog}"
@ -148,14 +148,14 @@ if [ "${consolelogging}" == "off" ]; then
echo "Console logging disabled by user" >> "${consolelog}"
fn_script_log_info "Console logging disabled by user"
fi
sleep 1
sleep 0.5
# If the server fails to start
check_status.sh
if [ "${status}" == "0" ]; then
fn_print_fail_nl "Unable to start ${servername}"
fn_script_log_fatal "Unable to start ${servername}"
sleep 1
sleep 0.5
if [ -s "${lgsmlogdir}/.${servicename}-tmux-error.tmp" ]; then
fn_print_fail_nl "Unable to start ${servername}: Tmux error:"
fn_script_log_fatal "Unable to start ${servername}: Tmux error:"
@ -168,8 +168,9 @@ sleep 1
echo "================================="
cat "${lgsmlogdir}/.${servicename}-tmux-error.tmp" | tee -a "${lgsmlog}"
# Detected error https://gameservermanagers.com/support
if [ $(grep -c "Operation not permitted" "${lgsmlogdir}/.${servicename}-tmux-error.tmp") ]; then
# Detected error https://linuxgsm.com/support
if grep -c "Operation not permitted" "${lgsmlogdir}/.${servicename}-tmux-error.tmp"
then
echo ""
echo "Fix"
echo "================================="
@ -185,13 +186,13 @@ sleep 1
echo ""
echo " usermod -G tty $(whoami)"
echo ""
echo "https://gameservermanagers.com/tmux-op-perm"
fn_script_log_info "https://gameservermanagers.com/tmux-op-perm"
echo "https://linuxgsm.com/tmux-op-perm"
fn_script_log_info "https://linuxgsm.com/tmux-op-perm"
else
echo "No known fix currently. Please log an issue."
fn_script_log_info "No known fix currently. Please log an issue."
echo "https://gameservermanagers.com/support"
fn_script_log_info "https://gameservermanagers.com/support"
echo "https://linuxgsm.com/support"
fn_script_log_info "https://linuxgsm.com/support"
fi
fi
fi
@ -206,7 +207,7 @@ sleep 1
}
fn_print_dots "${servername}"
sleep 1
sleep 0.5
check.sh
fix.sh
info_config.sh

36
lgsm/functions/command_stop.sh

@ -2,7 +2,7 @@
# LinuxGSM command_stop.sh function
# Author: Daniel Gibbs
# Contributors: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Stops the server.
local commandname="STOP"
@ -33,7 +33,7 @@ fn_stop_graceful_ctrlc(){
fn_print_fail_eol_nl
fn_script_log_error "Graceful: CTRL+c: FAIL"
fi
sleep 1
sleep 0.5
fn_stop_tmux
}
@ -44,7 +44,7 @@ fn_stop_graceful_cmd(){
fn_print_dots "Graceful: sending \"${1}\""
fn_script_log_info "Graceful: sending \"${1}\""
# sends specific stop command
tmux send -t "${servicename}" ${1} ENTER > /dev/null 2>&1
tmux send -t "${servicename}" "${1}" ENTER > /dev/null 2>&1
# waits up to given seconds giving the server time to shutdown gracefully
for ((seconds=1; seconds<=${2}; seconds++)); do
check_status.sh
@ -63,7 +63,7 @@ fn_stop_graceful_cmd(){
fn_print_fail_eol_nl
fn_script_log_error "Graceful: sending \"${1}\": FAIL"
fi
sleep 1
sleep 0.5
fn_stop_tmux
}
@ -84,7 +84,7 @@ fn_stop_graceful_goldsource(){
fn_print_ok "Graceful: sending \"quit\": ${seconds}: "
fn_print_ok_eol_nl
fn_script_log_pass "Graceful: sending \"quit\": OK: ${seconds} seconds"
sleep 1
sleep 0.5
fn_stop_tmux
}
@ -115,18 +115,18 @@ fn_stop_telnet_sdtd(){
fn_stop_graceful_sdtd(){
fn_print_dots "Graceful: telnet"
fn_script_log_info "Graceful: telnet"
sleep 1
sleep 0.5
if [ "${telnetenabled}" == "false" ]; then
fn_print_info_nl "Graceful: telnet: DISABLED: Enable in ${servercfg}"
elif [ "$(command -v expect 2>/dev/null)" ]||[ "$(which expect >/dev/null 2>&1)" ]; then
elif [ "$(command -v expect 2>/dev/null)" ]; then
# Tries to shutdown with both localhost and server IP.
for telnetip in 127.0.0.1 ${ip}; do
fn_print_dots "Graceful: telnet: ${telnetip}"
fn_script_log_info "Graceful: telnet: ${telnetip}"
sleep 1
sleep 0.5
fn_stop_telnet_sdtd
completed=$(echo -en "\n ${sdtd_telnet_shutdown}"|grep "Completed.")
refused=$(echo -en "\n ${sdtd_telnet_shutdown}"|grep "Timeout or EOF")
completed=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Completed.")
refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF")
if [ -n "${refused}" ]; then
fn_print_error "Graceful: telnet: ${telnetip}: "
fn_print_fail_eol_nl
@ -142,7 +142,7 @@ fn_stop_graceful_sdtd(){
if [ -n "${completed}" ]; then
for seconds in {1..30}; do
fn_stop_telnet_sdtd
refused=$(echo -en "\n ${sdtd_telnet_shutdown}"|grep "Timeout or EOF")
refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF")
if [ -n "${refused}" ]; then
fn_print_ok "Graceful: telnet: ${telnetip}: "
fn_print_ok_eol_nl
@ -173,7 +173,7 @@ fn_stop_graceful_sdtd(){
fn_print_fail_eol_nl
fn_script_log_warn "Graceful: telnet: expect not installed: FAIL"
fi
sleep 1
sleep 0.5
fn_stop_tmux
}
@ -193,7 +193,7 @@ fn_stop_graceful_select(){
fn_stop_graceful_goldsource
elif [ "${engine}" == "avalanche2.0" ]||[ "${engine}" == "avalanche3.0" ]||[ "${gamename}" == "Factorio" ]||[ "${engine}" == "unity3d" ]||[ "${engine}" == "unreal4" ]||[ "${engine}" == "unreal3" ]||[ "${engine}" == "unreal2" ]||[ "${engine}" == "unreal" ]||[ "${gamename}" == "Mumble" ]; then
fn_stop_graceful_ctrlc
elif [ "${engine}" == "source" ]||[ "${engine}" == "quake" ]||[ "${engine}" == "idtech2" ]||[ "${engine}" == "idtech3" ]||[ "${engine}" == "idtech3_ql" ]||[ "${engine}" == "Just Cause 2" ]||[ "${engine}" == "projectzomboid" ]; then
elif [ "${engine}" == "source" ]||[ "${engine}" == "quake" ]||[ "${engine}" == "idtech2" ]||[ "${engine}" == "idtech3" ]||[ "${engine}" == "idtech3_ql" ]||[ "${engine}" == "Just Cause 2" ]||[ "${engine}" == "projectzomboid" ]||[ "${shortname}" == "rw" ]; then
fn_stop_graceful_cmd "quit" 30
else
fn_stop_tmux
@ -218,17 +218,17 @@ fn_stop_ark(){
if [ "${#queryport}" -gt 0 ] ; then
for (( pidcheck=0 ; pidcheck < ${maxpiditer} ; pidcheck++ )) ; do
pid=$(netstat -nap 2>/dev/null | grep ^udp[[:space:]] |\
grep :${queryport}[[:space:]] | rev | awk '{print $1}' |\
pid=$(netstat -nap 2>/dev/null | grep "^udp[[:space:]]" |\
grep ":${queryport}[[:space:]]" | rev | awk '{print $1}' |\
rev | cut -d\/ -f1)
#
# check for a valid pid
pid=${pid//[!0-9]/}
let pid+=0 # turns an empty string into a valid number, '0',
# and a valid numeric pid remains unchanged.
if [ "${pid}" -gt 1 ]&&[ "${pid}" -le $(cat /proc/sys/kernel/pid_max) ]; then
if [ "${pid}" -gt 1 ]&&[ "${pid}" -le "$(cat "/proc/sys/kernel/pid_max")" ]; then
fn_print_dots "Process still bound. Awaiting graceful exit: ${pidcheck}"
sleep 1
sleep 0.5
else
break # Our job is done here
fi # end if for pid range check
@ -263,7 +263,7 @@ fn_stop_tmux(){
fn_script_log_info "tmux kill-session: ${servername}"
sleep 0.5
# Kill tmux session
tmux kill-session -t "${servicename}" > /dev/null 2>&1
tmux kill-session -t="${servicename}" > /dev/null 2>&1
sleep 0.5
check_status.sh
if [ "${status}" == "0" ]; then

4
lgsm/functions/command_test_alert.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_test_alert.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Sends a test alert.
local commandname="ALERT"
@ -9,7 +9,7 @@ local commandaction="Alert"
local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_print_dots "${servername}"
sleep 1
sleep 0.5
check.sh
info_config.sh
alert="test"

8
lgsm/functions/command_ts3_server_pass.sh

@ -2,7 +2,7 @@
# LinuxGSM command_ts3_server_pass.sh function
# Author: Daniel Gibbs
# Contributor : UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Changes TS3 serveradmin password.
local commandname="TS3-CHANGE-PASS"
@ -19,20 +19,20 @@ fn_serveradmin_password_prompt(){
echo Exiting; exit
fi
fn_script_log_info "Initiating ${gamename} ServerAdmin password change"
read -p "Enter new password : " newpassword
read -rp "Enter new password : " newpassword
}
fn_serveradmin_password_set(){
fn_print_info_nl "Starting server with new password..."
fn_script_log_info "Starting server with new password"
sleep 1
sleep 0.5
# Start server in "new password mode"
ts3serverpass="1"
exitbypass="1"
command_start.sh
fn_print_ok_nl "Password applied"
fn_script_log_pass "New ServerAdmin password applied"
sleep 1
sleep 0.5
}
# Running functions

2
lgsm/functions/command_update.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_update.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Handles updating of servers.
local commandname="UPDATE"

2
lgsm/functions/command_update_functions.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_update_functions.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Deletes the functions dir to allow re-downloading of functions from GitHub.
# Legacy Command

10
lgsm/functions/command_update_linuxgsm.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_update_linuxgsm.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Deletes the functions dir to allow re-downloading of functions from GitHub.
local commandname="UPDATE LinuxGSM"
@ -9,12 +9,12 @@ local commandaction="Update LinuxGSM"
local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_print_dots "Updating LinuxGSM"
sleep 1
sleep 0.5
check.sh
fn_script_log_info "Updating LinuxGSM"
echo -ne "\n"
if [ -z "${legacymode}" ];then
if [ -z "${legacymode}" ]; then
# Check and update _default.cfg
echo -ne " checking config _default.cfg...\c"
config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(${curlpath} -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
@ -75,7 +75,7 @@ fi
# Check and update functions
if [ -n "${functionsdir}" ]; then
if [ -d "${functionsdir}" ]; then
cd "${functionsdir}"
cd "${functionsdir}" || exit
for functionfile in *
do
echo -ne " checking function ${functionfile}...\c"
@ -97,7 +97,7 @@ if [ -n "${functionsdir}" ]; then
elif [ "${function_file_diff}" != "" ]; then
fn_print_update_eol_nl
fn_script_log_info "checking function ${functionfile}: UPDATE"
rm -rf "${functionsdir}/${functionfile}"
rm -rf "${functionsdir:?}/${functionfile}"
fn_update_function
else
fn_print_ok_eol_nl

14
lgsm/functions/command_validate.sh

@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_validate.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Runs a server validation.
local commandname="VALIDATE"
@ -17,19 +17,19 @@ fn_validation(){
echo -en "\n"
fn_script_log_info "Validating files: SteamCMD"
sleep 1
sleep 0.5
cd "${steamcmddir}"
cd "${steamcmddir}" || exit
# Detects if unbuffer command is available for 32 bit distributions only.
info_distro.sh
if [ $(command -v stdbuf) ]&&[ "${arch}" != "x86_64" ]; then
if [ "$(command -v stdbuf)" ]&&[ "${arch}" != "x86_64" ]; then
unbuffer="stdbuf -i0 -o0 -e0"
fi
if [ "${engine}" == "goldsource" ]; then
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" ${branch} +app_update "${appid}" ${branch} validate +quit| tee -a "${lgsmlog}"
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" ${branch} +app_update "${appid}" ${branch} validate +quit | tee -a "${lgsmlog}"
else
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${branch} validate +quit| tee -a "${lgsmlog}"
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${branch} validate +quit | tee -a "${lgsmlog}"
fi
if [ $? != 0 ]; then
fn_print_fail_nl "Validating files: SteamCMD"
@ -45,7 +45,7 @@ fn_validation(){
fn_print_dots "Validating files:"
sleep 0.5
fn_print_dots "Validating files: SteamCMD"
sleep 1
sleep 0.5
check.sh
check_status.sh
if [ "${status}" != "0" ]; then

22
lgsm/functions/command_wipe.sh

@ -2,7 +2,7 @@
# LinuxGSM command_backup.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Website: https://linuxgsm.com
# Description: Wipes server data, useful after updates for some games like Rust
local commandname="WIPE"
@ -48,7 +48,7 @@ fn_wipe_server_remove_files(){
if [ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.sav")" ]; then
currentaction="Removing procedural map save(s): ${serveridentitydir}/proceduralmap.*.sav"
echo -en "Removing map saves proceduralmap.*.sav file(s)..."
sleep 1
sleep 0.5
fn_script_log "${currentaction}"
find "${serveridentitydir:?}" -type f -name "proceduralmap.*.sav" -delete
fn_wipe_exit_code
@ -62,7 +62,7 @@ fn_wipe_server_remove_files(){
if [ -n "$(find "${serveridentitydir}" -type f -name "barren*.sav")" ]; then
currentaction="Removing barren map save(s): ${serveridentitydir}/barren*.sav"
echo -en "Removing barren map saves barren*.sav file(s)..."
sleep 1
sleep 0.5
fn_script_log "${currentaction}"
find "${serveridentitydir:?}" -type f -name "barren*.sav" -delete
fn_wipe_exit_code
@ -76,7 +76,7 @@ fn_wipe_server_remove_files(){
if [ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.map")" ]; then
currentaction="Removing map file(s): ${serveridentitydir}/proceduralmap.*.map"
echo -en "Removing procedural map proceduralmap.*.map file(s)..."
sleep 1
sleep 0.5
fn_script_log "${currentaction}"
find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete
fn_wipe_exit_code
@ -90,7 +90,7 @@ fn_wipe_server_remove_files(){
if [ -n "$(find "${serveridentitydir}" -type f -name "barren*.map")" ]; then
currentaction="Removing map file(s): ${serveridentitydir}/barren*.map"
echo -en "Removing barren map barren*.map file(s)..."
sleep 1
sleep 0.5
fn_script_log "${currentaction}"
find "${serveridentitydir:?}" -type f -name "barren*.map" -delete
fn_wipe_exit_code
@ -103,7 +103,7 @@ fn_wipe_server_remove_files(){
if [ -d "${serveridentitydir}/user" ]; then
currentaction="Removing user directory: ${serveridentitydir}/user"
echo -en "Removing user directory..."
sleep 1
sleep 0.5
fn_script_log "${currentaction}"
rm -rf "${serveridentitydir:?}/user"
fn_wipe_exit_code
@ -116,7 +116,7 @@ fn_wipe_server_remove_files(){
if [ -d "${serveridentitydir}/storage" ]; then
currentaction="Removing storage directory: ${serveridentitydir}/storage"
echo -en "Removing storage directory..."
sleep 1
sleep 0.5
fn_script_log "${currentaction}"
rm -rf "${serveridentitydir:?}/storage"
fn_wipe_exit_code
@ -129,7 +129,7 @@ fn_wipe_server_remove_files(){
if [ -n "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]; then
currentaction="Removing log files: ${serveridentitydir}/Log.*.txt"
echo -en "Removing Log files..."
sleep 1
sleep 0.5
fn_script_log "${currentaction}"
find "${serveridentitydir:?}" -type f -name "Log.*.txt" -delete
fn_wipe_exit_code
@ -152,12 +152,12 @@ if [ "${gamename}" == "Rust" ]; then
echo Exiting; core_exit.sh
fi
fn_script_log_info "User selects to erase any user, storage, log and map data from ${serveridentitydir}"
sleep 1
sleep 0.5
fn_wipe_server_process
else
fn_print_information_nl "No data to wipe was found"
fn_script_log_info "No data to wipe was found."
sleep 1
sleep 0.5
core_exit.sh
fi
# You can add an "elif" here to add another game or engine
@ -165,7 +165,7 @@ else
# Game not listed
fn_print_information_nl "Wipe is not available for this game"
fn_script_log_info "Wipe is not available for this game."
sleep 1
sleep 0.5
core_exit.sh
fi

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save