Release 180409
* Added new server Rising World * Added new server ET: Legacy * Added support for node-gamedig * Updated Factorio to glibc 2.18 * Changed apt-get to apt * Changed many sleep timers from 1 second to 0.5 to speed up LinuxGSM * Fix for issue #1784 Tmux closing wrong session * Fixed dependency requirements for CoD 2 and CoD:UO #1866 * Discord now uses external IP over standard IP * Code tidy/improvements with guidance from Shellcheck * Added development command query-raw * Added development command clear-functions * Added development log dev-debug-function-order.log * Added fctrserver to Travis CI tests * Updates to GitHub Issues; Added bots and updated templated * Fixed waffle.io button no longer working * Corrected Query Port for UT3 (Query Port does not work btw)
15
.github/request-info.yml
vendored
Normal file
@ -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
vendored
Normal file
@ -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
vendored
Normal file
@ -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
|
@ -36,6 +36,8 @@ 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
|
||||
|
@ -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,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/)
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.9 KiB |
@ -1,3 +0,0 @@
|
||||
# LinuxGSM - Official Logos
|
||||
For Reference the original design can be found here.
|
||||
http://twolofbees.com/artwork.php?iid=870
|
Before Width: | Height: | Size: 4.6 KiB |
@ -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 "stycil" - 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.
|
||||
cheese@twolofbees.com</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 |
@ -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 "stycil" - 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.
|
||||
cheese@twolofbees.com</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 |
@ -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 "stycil" - 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.
|
||||
cheese@twolofbees.com</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 |
@ -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 "stycil" - 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.
|
||||
cheese@twolofbees.com</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 |
@ -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 "stycil" - 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.
|
||||
cheese@twolofbees.com</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 |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 128 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 653 B |
Before Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 1008 B |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 275 KiB |
Before Width: | Height: | Size: 48 KiB |
104
lgsm/config-default/config-lgsm/etlserver/_default.cfg
Normal file
@ -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@example.com"
|
||||
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="alert@example.com"
|
||||
mailgunemail="email@myemail.com"
|
||||
|
||||
# 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"
|
118
lgsm/config-default/config-lgsm/rwserver/_default.cfg
Normal file
@ -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@example.com"
|
||||
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="alert@example.com"
|
||||
mailgunemail="email@myemail.com"
|
||||
|
||||
# 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"
|
@ -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"
|
||||
|
@ -57,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
|
||||
@ -73,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
|
||||
|
|
@ -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(){
|
||||
|
@ -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}"
|
||||
|
@ -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}"
|
||||
|
@ -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}"
|
||||
|
@ -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}"
|
||||
|
@ -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=()
|
||||
@ -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
|
||||
@ -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
|
||||
|
@ -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
|
||||
@ -57,7 +58,7 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
|
||||
# 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"
|
||||
@ -74,7 +75,7 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
|
||||
else
|
||||
fn_print_info_nl "Check IP: ${getip}"
|
||||
fn_script_log_info "IP automatically set as: ${getip}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
ip="${getip}"
|
||||
fi
|
||||
fi
|
||||
|
@ -9,17 +9,17 @@ 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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
Normal file
@ -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
|
@ -24,9 +24,9 @@ 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++))
|
||||
@ -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"
|
||||
|
@ -31,18 +31,18 @@ echo ""
|
||||
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"
|
||||
|
||||
|
@ -25,14 +25,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'
|
||||
|
40
lgsm/functions/command_dev_query_raw.sh
Normal file
@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
# command_dev_query_raw.sh function
|
||||
# Author: Daniel Gibbs
|
||||
# Website: https://gameservermanagers.com
|
||||
# Description: Raw gamedig output of the server.
|
||||
|
||||
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
|
||||
|
||||
|
||||
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}"
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -66,7 +66,7 @@ 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
|
||||
|
@ -4,12 +4,82 @@
|
||||
# Contributor: UltimateByte
|
||||
# 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,105 @@ 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}: "
|
||||
fn_print_fail_eol_nl
|
||||
fn_script_log_error "Checking session: ${ts3error}: FAIL"
|
||||
failurereason="${ts3error}"
|
||||
alert="restart"
|
||||
alert.sh
|
||||
fn_script_log_info "Monitor is starting ${servername}"
|
||||
sleep 1
|
||||
command_restart.sh
|
||||
fi
|
||||
}
|
||||
|
||||
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 unreal4 )
|
||||
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
|
||||
fi
|
||||
done
|
||||
else
|
||||
fn_print_error "Checking session: "
|
||||
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: 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_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
|
||||
|
||||
# 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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
@ -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,9 +112,9 @@ 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
|
||||
@ -122,7 +122,7 @@ fn_start_tmux(){
|
||||
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
|
||||
@ -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:"
|
||||
@ -169,7 +169,8 @@ sleep 1
|
||||
cat "${lgsmlogdir}/.${servicename}-tmux-error.tmp" | tee -a "${lgsmlog}"
|
||||
|
||||
# Detected error https://linuxgsm.com/support
|
||||
if [ $(grep -c "Operation not permitted" "${lgsmlogdir}/.${servicename}-tmux-error.tmp") ]; then
|
||||
if grep -c "Operation not permitted" "${lgsmlogdir}/.${servicename}-tmux-error.tmp"
|
||||
then
|
||||
echo ""
|
||||
echo "Fix"
|
||||
echo "================================="
|
||||
@ -206,7 +207,7 @@ sleep 1
|
||||
}
|
||||
|
||||
fn_print_dots "${servername}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
check.sh
|
||||
fix.sh
|
||||
info_config.sh
|
||||
|
@ -14,7 +14,7 @@ fn_stop_graceful_ctrlc(){
|
||||
fn_print_dots "Graceful: CTRL+c"
|
||||
fn_script_log_info "Graceful: CTRL+c"
|
||||
# sends quit
|
||||
tmux send-keys C-c -t "${servicename}" > /dev/null 2>&1
|
||||
tmux send-keys C-c -t="${servicename}" > /dev/null 2>&1
|
||||
# waits up to 30 seconds giving the server time to shutdown gracefuly
|
||||
for seconds in {1..30}; do
|
||||
check_status.sh
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ fn_stop_graceful_goldsource(){
|
||||
fn_print_dots "Graceful: sending \"quit\""
|
||||
fn_script_log_info "Graceful: sending \"quit\""
|
||||
# sends quit
|
||||
tmux send -t "${servicename}" quit ENTER > /dev/null 2>&1
|
||||
tmux send -t="${servicename}" quit ENTER > /dev/null 2>&1
|
||||
# waits 3 seconds as goldsource servers restart with the quit command
|
||||
for seconds in {1..3}; do
|
||||
sleep 1
|
||||
@ -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,7 +115,7 @@ 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)" ]; then
|
||||
@ -123,10 +123,10 @@ fn_stop_graceful_sdtd(){
|
||||
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,7 +218,7 @@ fn_stop_ark(){
|
||||
|
||||
if [ "${#queryport}" -gt 0 ] ; then
|
||||
for (( pidcheck=0 ; pidcheck < ${maxpiditer} ; pidcheck++ )) ; do
|
||||
pid=$(netstat -nap 2>/dev/null | grep ^udp[[:space:]] |\
|
||||
pid=$(netstat -nap 2>/dev/null | grep "^udp[[:space:]]" |\
|
||||
grep ":${queryport}[[:space:]]" | rev | awk '{print $1}' |\
|
||||
rev | cut -d\/ -f1)
|
||||
#
|
||||
@ -228,7 +228,7 @@ fn_stop_ark(){
|
||||
# and a valid numeric pid remains unchanged.
|
||||
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
|
||||
|
@ -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"
|
||||
|
@ -25,14 +25,14 @@ fn_serveradmin_password_prompt(){
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -17,9 +17,9 @@ 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
|
||||
@ -27,9 +27,9 @@ fn_validation(){
|
||||
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
|
||||
|
@ -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
|
||||
|
||||
|
@ -22,7 +22,7 @@ if ! fn_prompt_yn "Start compression?" Y; then
|
||||
fi
|
||||
mkdir -pv "${compressedmapsdir}" > /dev/null 2>&1
|
||||
rm -rfv "${serverfiles}/Maps/"*.unr.uz
|
||||
cd "${systemdir}"
|
||||
cd "${systemdir}" || exit
|
||||
for map in "${serverfiles}/Maps/"*; do
|
||||
./ucc-bin compress "${map}" --nohomedir
|
||||
done
|
||||
|
@ -25,7 +25,7 @@ fn_dl_md5(){
|
||||
# Runs MD5 Check if available
|
||||
if [ "${md5}" != "0" ]&&[ "${md5}" != "nomd5" ]; then
|
||||
echo -ne "verifying ${local_filename} with MD5..."
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
local md5sumcmd=$(md5sum "${local_filedir}/${local_filename}"|awk '{print $1;}')
|
||||
if [ "${md5sumcmd}" != "${md5}" ]; then
|
||||
fn_print_fail_eol_nl
|
||||
@ -88,7 +88,7 @@ fn_fetch_trap(){
|
||||
echo -ne "downloading ${local_filename}..."
|
||||
fn_print_canceled_eol_nl
|
||||
fn_script_log_info "Downloading ${local_filename}...CANCELED"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
rm -f "${local_filedir}/${local_filename}"
|
||||
echo -ne "downloading ${local_filename}..."
|
||||
fn_print_removed_eol_nl
|
||||
|
@ -8,6 +8,9 @@ fn_exit_dev_debug(){
|
||||
if [ -f "${rootdir}/.dev-debug" ]; then
|
||||
echo ""
|
||||
echo "${function_selfname} exiting with code: ${exitcode}"
|
||||
if [ -f "${rootdir}/dev-debug.log" ]; then
|
||||
grep "functionfile=" "${rootdir}/dev-debug.log" | sed 's/functionfile=//g' > "${rootdir}/dev-debug-function-order.log"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -269,6 +269,11 @@ functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
command_dev_query_raw.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
# Fix
|
||||
|
||||
fix.sh(){
|
||||
@ -306,12 +311,23 @@ functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
fix_steamcmd.sh(){
|
||||
fix_glibc.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
fix_glibc.sh(){
|
||||
|
||||
fix_kf.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
fix_kf2.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
fix_mta.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
@ -321,12 +337,22 @@ functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
fix_kf.sh(){
|
||||
fix_rust.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
fix_kf2.sh(){
|
||||
fix_rw.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
fix_ut3.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
fix_rust.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
@ -341,16 +367,6 @@ functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
fix_rust.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
fix_mta.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
# Info
|
||||
|
||||
info_config.sh(){
|
||||
@ -363,6 +379,11 @@ functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
info_gamedig.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
info_glibc.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
@ -426,9 +447,9 @@ functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
||||
# Monitor
|
||||
# Query
|
||||
|
||||
monitor_gsquery.sh(){
|
||||
query_gamedig.sh(){
|
||||
functionfile="${FUNCNAME}"
|
||||
fn_fetch_function
|
||||
}
|
||||
|
@ -47,6 +47,8 @@ cmd_dev_debug=( "dev;developer" "command_dev_debug.sh" "Enable developer Mode."
|
||||
cmd_dev_detect_deps=( "dd;detect-deps" "command_dev_detect_deps.sh" "Detect required dependencies." )
|
||||
cmd_dev_detect_glibc=( "dg;detect-glibc" "command_dev_detect_glibc.sh" "Detect required glibc." )
|
||||
cmd_dev_detect_ldd=( "dl;detect-ldd" "command_dev_detect_ldd.sh" "Detect required dynamic dependencies." )
|
||||
cmd_dev_query_raw=( "qr;query-raw" "command_dev_query_raw.sh" "The raw output of gamedig and gsquery." )
|
||||
cmd_dev_clear_functions=( "cf;clear-functions" "command_dev_clear_functions.sh" "Delete the contents of the functions dir." )
|
||||
|
||||
### Set specific opt here ###
|
||||
|
||||
@ -59,7 +61,7 @@ currentopt+=( "${cmd_update_linuxgsm[@]}" )
|
||||
if [ "${gamename}" != "Battlefield: 1942" ]&&[ "${engine}" != "quake" ]&&[ "${engine}" != "idtech2" ]&&[ "${engine}" != "idtech3" ]&&[ "${engine}" != "iw2.0" ]&&[ "${engine}" != "iw3.0" ]&&[ "${gamename}" != "San Andreas Multiplayer" ]; then
|
||||
currentopt+=( "${cmd_update[@]}" )
|
||||
# force update for SteamCMD only or MTA
|
||||
if [ -n "${appid}" ] || [ "${gamename}" == "Multi Theft Auto" ]; then
|
||||
if [ -n "${appid}" ]||[ "${gamename}" == "Multi Theft Auto" ]; then
|
||||
currentopt+=( "${cmd_force_update[@]}" )
|
||||
fi
|
||||
fi
|
||||
@ -130,16 +132,16 @@ currentopt+=( "${cmd_install[@]}" "${cmd_auto_install[@]}" )
|
||||
## Developer commands
|
||||
currentopt+=( "${cmd_dev_debug[@]}" )
|
||||
if [ -f ".dev-debug" ]; then
|
||||
currentopt+=( "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" )
|
||||
currentopt+=( "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" "${cmd_dev_query_raw[@]}" )
|
||||
fi
|
||||
|
||||
### Build list of available commands
|
||||
optcommands=()
|
||||
index="0"
|
||||
for ((index="0"; index < ${#currentopt[@]}; index+=3)); do
|
||||
cmdamount="$(echo "${currentopt[index]}"| awk -F ';' '{ print NF }')"
|
||||
cmdamount="$(echo "${currentopt[index]}" | awk -F ';' '{ print NF }')"
|
||||
for ((cmdindex=1; cmdindex <= ${cmdamount}; cmdindex++)); do
|
||||
optcommands+=( "$(echo "${currentopt[index]}"| awk -F ';' -v x=${cmdindex} '{ print $x }')" )
|
||||
optcommands+=( "$(echo "${currentopt[index]}" | awk -F ';' -v x=${cmdindex} '{ print $x }')" )
|
||||
done
|
||||
done
|
||||
|
||||
@ -174,11 +176,11 @@ for i in "${optcommands[@]}"; do
|
||||
# Seek and run command
|
||||
index="0"
|
||||
for ((index="0"; index < ${#currentopt[@]}; index+=3)); do
|
||||
currcmdamount="$(echo "${currentopt[index]}"| awk -F ';' '{ print NF }')"
|
||||
currcmdamount="$(echo "${currentopt[index]}" | awk -F ';' '{ print NF }')"
|
||||
for ((currcmdindex=1; currcmdindex <= ${currcmdamount}; currcmdindex++)); do
|
||||
if [ "$(echo "${currentopt[index]}"| awk -F ';' -v x=${currcmdindex} '{ print $x }')" == "${getopt}" ]; then
|
||||
if [ "$(echo "${currentopt[index]}" | awk -F ';' -v x=${currcmdindex} '{ print $x }')" == "${getopt}" ]; then
|
||||
# Run command
|
||||
eval ${currentopt[index+1]}
|
||||
eval "${currentopt[index+1]}"
|
||||
core_exit.sh
|
||||
break
|
||||
fi
|
||||
|
@ -11,18 +11,18 @@ local commandaction="Fix"
|
||||
# Messages that are displayed for some fixes
|
||||
fn_fix_msg_start(){
|
||||
fn_print_dots "Applying ${fixname} fix: ${gamename}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
fn_print_info "Applying ${fixname} fix: ${gamename}"
|
||||
fn_script_log_info "Applying ${fixname} fix: ${gamename}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
}
|
||||
|
||||
fn_fix_msg_start_nl(){
|
||||
fn_print_dots "Applying ${fixname} fix: ${gamename}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
fn_print_info "Applying ${fixname} fix: ${gamename}"
|
||||
fn_script_log_info "Applying ${fixname} fix: ${gamename}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
}
|
||||
|
||||
fn_fix_msg_end(){
|
||||
@ -56,6 +56,8 @@ if [ "${function_selfname}" != "command_install.sh" ]; then
|
||||
fix_ins.sh
|
||||
elif [ "${gamename}" == "Rust" ]; then
|
||||
fix_rust.sh
|
||||
elif [ "${shortname}" == "rw" ]; then
|
||||
fix_rw.sh
|
||||
elif [ "${gamename}" == "Multi Theft Auto" ]; then
|
||||
fix_mta.sh
|
||||
fi
|
||||
@ -66,7 +68,7 @@ if [ "${function_selfname}" == "command_install.sh" ]; then
|
||||
echo ""
|
||||
echo "Applying ${gamename} Server Fixes"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
if [ "${gamename}" == "Killing Floor" ]; then
|
||||
fix_kf.sh
|
||||
elif [ "${gamename}" == "Killing Floor 2" ]; then
|
||||
@ -77,5 +79,7 @@ if [ "${function_selfname}" == "command_install.sh" ]; then
|
||||
fix_ut2k4.sh
|
||||
elif [ "${gamename}" == "Unreal Tournament" ]; then
|
||||
fix_ut.sh
|
||||
elif [ "${gamename}" == "Unreal Tournament 3" ]; then
|
||||
fix_ut3.sh
|
||||
fi
|
||||
fi
|
||||
|
@ -12,15 +12,15 @@ echo "Applying WebAdmin ROOst.css fix."
|
||||
echo "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
|
||||
sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
|
||||
sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "Applying WebAdmin CharSet fix."
|
||||
echo "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
|
||||
sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/UWeb.int"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "applying server name fix."
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "forcing server restart..."
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
command_start.sh
|
||||
sleep 5
|
||||
command_stop.sh
|
||||
|
@ -12,7 +12,7 @@ fn_parms(){
|
||||
parms="\"${defaultmap}?Game=KFGameContent.KFGameInfo_VersusSurvival\""
|
||||
}
|
||||
|
||||
fn_print_information "starting Killing Floor 2 server to generate configs."
|
||||
fn_print_information "starting ${gamename} server to generate configs."
|
||||
sleep 1
|
||||
exitbypass=1
|
||||
command_start.sh
|
||||
|
@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
|
||||
if [ ! -f "${lgsmdir}/lib/libmysqlclient.so.16" ]; then
|
||||
fixname="libmysqlclient16"
|
||||
fn_fix_msg_start_nl
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
fn_fetch_file "https://nightly.mtasa.com/files/modules/64/libmysqlclient.so.16" "${lgsmdir}/lib" "libmysqlclient.so.16" "chmodx" "norun" "noforce" "6c188e0f8fb5d7a29f4bc413b9fed6c2"
|
||||
fn_fix_msg_end
|
||||
fi
|
||||
|
@ -12,18 +12,18 @@ echo "Applying WebAdmin ROOst.css fix."
|
||||
echo "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
|
||||
sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
|
||||
sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "Applying WebAdmin CharSet fix."
|
||||
echo "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
|
||||
sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/uweb.int"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "Applying Steam AppID fix."
|
||||
sed -i 's/1210/1200/g' "${systemdir}/steam_appid.txt"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "applying server name fix."
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "forcing server restart..."
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
command_start.sh
|
||||
sleep 5
|
||||
command_stop.sh
|
||||
|
10
lgsm/functions/fix_rw.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
# LinuxGSM fix_rw.sh function
|
||||
# Author: Daniel Gibbs
|
||||
# Website: https://linuxgsm.com
|
||||
# Description: Resolves startup issue with Rising World
|
||||
|
||||
local commandname="FIX"
|
||||
local commandaction="Fix"
|
||||
|
||||
export LD_LIBRARY_PATH="${serverfiles}/linux64:${serverfiles}:$LD_LIBRARY_PATH"
|
@ -11,4 +11,4 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
|
||||
#Set Binary Executable
|
||||
echo "chmod +x ${executabledir}/${executable}"
|
||||
chmod +x "${executabledir}/${executable}"
|
||||
sleep 1
|
||||
sleep 0.5
|
@ -12,15 +12,15 @@ echo "applying WebAdmin ut2003.css fix."
|
||||
echo "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
|
||||
sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ut2003.css"
|
||||
sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ut2003.css"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "applying WebAdmin CharSet fix."
|
||||
echo "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
|
||||
sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/UWeb.int"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "applying server name fix."
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "forcing server restart."
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
exitbypass=1
|
||||
command_start.sh
|
||||
sleep 5
|
||||
|
20
lgsm/functions/fix_ut3.sh
Normal file
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
# LinuxGSM fix_ut2.sh function
|
||||
# Author: Daniel Gibbs
|
||||
# Website: https://linuxgsm.com
|
||||
# Description: Resolves various issues with configs in Unreal Tournament 3.
|
||||
|
||||
local commandname="FIX"
|
||||
local commandaction="Fix"
|
||||
local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
|
||||
|
||||
fn_parms(){
|
||||
parms="server VCTF-Suspense?Game=UTGameContent.UTVehicleCTFGame_Content?bIsDedicated=true?bIsLanMatch=false?bUsesStats=false?bShouldAdvertise=false?PureServer=1?bAllowJoinInProgress=true?ConfigSubDir=${servicename} -port=${port} -queryport=${queryport} -multihome=${ip} -nohomedir -unattended -log=${gamelog}"
|
||||
}
|
||||
|
||||
fn_print_information "starting ${gamename} server to generate configs."
|
||||
sleep 1
|
||||
exitbypass=1
|
||||
command_start.sh
|
||||
sleep 10
|
||||
command_stop.sh
|
@ -20,13 +20,14 @@ fn_info_config_justcause2(){
|
||||
serverpassword="${unavailable}"
|
||||
maxplayers="${zero}"
|
||||
port="${zero}"
|
||||
queryport="${zero}"
|
||||
else
|
||||
servername=$(grep "Name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/Name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
serverdescription=$(grep "Description" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/Description//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
serverpassword=$(grep "Password" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
|
||||
port=$(grep "BindPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
|
||||
|
||||
queryport="${port}"
|
||||
ip=$(grep "BindIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/BindIP//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
ipsetinconfig=1
|
||||
ipinconfigvar="BindIP"
|
||||
@ -36,6 +37,7 @@ fn_info_config_justcause2(){
|
||||
serverpassword=${serverpassword:-"NOT SET"}
|
||||
maxplayers=${maxplayers:-"0"}
|
||||
port=${port:-"0"}
|
||||
queryport=${queryport:-"0"}
|
||||
fi
|
||||
}
|
||||
|
||||
@ -364,7 +366,7 @@ fn_info_config_quakeworld(){
|
||||
rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
maxplayers=$(grep "maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
|
||||
port=
|
||||
|
||||
# Not Set
|
||||
rconpassword=${rconpassword:-"NOT SET"}
|
||||
servername=${servername:-"NOT SET"}
|
||||
@ -417,6 +419,7 @@ fn_info_config_quakelive(){
|
||||
serverpassword="${unavailable}"
|
||||
maxplayers="${zero}"
|
||||
port="${zero}"
|
||||
queryport="${zero}"
|
||||
rconport="${zero}"
|
||||
statsport="${zero}"
|
||||
else
|
||||
@ -425,6 +428,7 @@ fn_info_config_quakelive(){
|
||||
serverpassword=$(grep "g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
maxplayers=$(grep "sv_maxClients" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
|
||||
port=$(grep "net_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
|
||||
queryport="${port}"
|
||||
rconport=$(grep "zmq_rcon_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
|
||||
statsport=$(grep "zmq_stats_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
|
||||
|
||||
@ -438,6 +442,7 @@ fn_info_config_quakelive(){
|
||||
serverpassword=${serverpassword:-"NOT SET"}
|
||||
maxplayers=${maxplayers:-"0"}
|
||||
port=${port:-"0"}
|
||||
queryport=${queryport:-"0"}
|
||||
rconport=${rconport:-"0"}
|
||||
statsport=${statsport:-"0"}
|
||||
fi
|
||||
@ -463,6 +468,40 @@ fn_info_config_realvirtuality(){
|
||||
fi
|
||||
}
|
||||
|
||||
fn_info_config_risingworld(){
|
||||
if [ ! -f "${servercfgfullpath}" ]; then
|
||||
servername="${unavailable}"
|
||||
rconpassword="${unavailable}"
|
||||
rconport="${zero}"
|
||||
maxplayers="${zero}"
|
||||
port="${zero}"
|
||||
gamemode="${unavailable}"
|
||||
gameworld="${unavailable}"
|
||||
else
|
||||
servername=$(grep "server_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
serverpassword=$(grep "server_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
rconport=$(grep "rcon_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
|
||||
maxplayers=$(grep "settings_max_players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
|
||||
port=$(grep "server_port" "${servercfgfullpath}" | grep -v "database_mysql_server_port" | grep -v "#" | tr -cd '[:digit:]')
|
||||
gamemode=$(grep "gamemode" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
|
||||
gameworld=$(grep "server_world_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_world_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
javaram=$(grep "server_memory" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_memory//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
ip=$(grep "server_ip" "${servercfgfullpath}" | grep -v "database_mysql_server_ip" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
ipsetinconfig=1
|
||||
ipinconfigvar="server-ip"
|
||||
|
||||
# Not Set
|
||||
servername=${servername:-"NOT SET"}
|
||||
rconpassword=${rconpassword:-"NOT SET"}
|
||||
rconport=${rconport:-"NOT SET"}
|
||||
maxplayers=${maxplayers:-"NOT SET"}
|
||||
port=${port:-"NOT SET"}
|
||||
gamemode=${gamemode:-"NOT SET"}
|
||||
gameworld=${gameworld:-"NOT SET"}
|
||||
fi
|
||||
}
|
||||
|
||||
fn_info_config_seriousengine35(){
|
||||
if [ ! -f "${servercfgfullpath}" ]; then
|
||||
servername="${unavailable}"
|
||||
@ -704,7 +743,6 @@ fn_info_config_unreal3(){
|
||||
servername="${unavailable}"
|
||||
serverpassword="${unavailable}"
|
||||
adminpassword="${unavailable}"
|
||||
port="${unavailable}"
|
||||
webadminenabled="${unavailable}"
|
||||
webadminport="${zero}"
|
||||
webadminuser="${unavailable}"
|
||||
@ -712,7 +750,6 @@ fn_info_config_unreal3(){
|
||||
else
|
||||
servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
port=$(grep "Port" "${servercfgdir}/UTEngine.ini" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
|
||||
webadminenabled=$(grep "bEnabled" "${servercfgdir}/UTWeb.ini" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
webadminport=$(grep "ListenPort" "${servercfgdir}/UTWeb.ini" | grep -v "#" | tr -cd '[:digit:]')
|
||||
webadminuser="Admin"
|
||||
@ -736,13 +773,13 @@ fn_info_config_kf2(){
|
||||
serverpassword="${unavailable}"
|
||||
adminpassword="${unavailable}"
|
||||
port="${unavailable}"
|
||||
queryport="${unavailable}"
|
||||
webadminenabled="${unavailable}"
|
||||
webadminport="${zero}"
|
||||
webadminuser="${unavailable}"
|
||||
webadminpass="${unavailable}"
|
||||
else
|
||||
servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
# Not in UT3
|
||||
serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
port=$(grep "Port" "${servercfgdir}/LinuxServer-KFEngine.ini" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
|
||||
@ -858,8 +895,10 @@ fn_info_config_wolfensteinenemyterritory(){
|
||||
serverpassword="${unavailable}"
|
||||
maxplayers="${zero}"
|
||||
port="${zero}"
|
||||
queryport="${zero}"
|
||||
else
|
||||
port=$(grep "set net_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
|
||||
queryport="${port}"
|
||||
rconpassword=$(grep "set zmq_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set zmq_rcon_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//g' -e '/^\//d' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
servername=$(grep "set sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
@ -875,24 +914,56 @@ fn_info_config_wolfensteinenemyterritory(){
|
||||
serverpassword=${serverpassword:-"NOT SET"}
|
||||
maxplayers=${maxplayers:-"0"}
|
||||
port=${port:-"27960"}
|
||||
queryport=${queryport:-"27960"}
|
||||
fi
|
||||
}
|
||||
|
||||
fn_info_config_etlegacy(){
|
||||
if [ ! -f "${servercfgfullpath}" ]; then
|
||||
rconpassword="${unavailable}"
|
||||
servername="${unavailable}"
|
||||
serverpassword="${unavailable}"
|
||||
maxplayers="${zero}"
|
||||
port="${zero}"
|
||||
queryport="${zero}"
|
||||
else
|
||||
port=$(grep "set net_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
|
||||
queryport="${port}"
|
||||
rconpassword=$(grep "set rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//g' -e '/^\//d' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
servername=$(grep "set sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
maxplayers=$(grep "set sv_maxclients" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
|
||||
|
||||
ip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
ipsetinconfig=1
|
||||
ipinconfigvar="set net_ip"
|
||||
|
||||
# Not Set
|
||||
rconpassword=${rconpassword:-"NOT SET"}
|
||||
servername=${servername:-"NOT SET"}
|
||||
serverpassword=${serverpassword:-"NOT SET"}
|
||||
maxplayers=${maxplayers:-"0"}
|
||||
port=${port:-"27960"}
|
||||
queryport=${queryport:-"27960"}
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
fn_info_config_squad(){
|
||||
if [ ! -f "${servercfgfullpath}" ]; then
|
||||
servername="${unavailable}"
|
||||
maxplayers="${unavailable}"
|
||||
else
|
||||
servername="$(cat ${servercfgfullpath} | grep "ServerName=" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')"
|
||||
maxplayers="$(cat ${servercfgfullpath} | grep "MaxPlayers=" | tr -cd '[:digit:]')"
|
||||
servername="$(grep "ServerName=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')"
|
||||
maxplayers="$(grep "MaxPlayers=" "${servercfgfullpath}" | tr -cd '[:digit:]')"
|
||||
fi
|
||||
|
||||
if [ ! -f "${servercfgdir}/Rcon.cfg" ]; then
|
||||
rconport=${unavailable}
|
||||
rconpassword=${unavailable}
|
||||
else
|
||||
rconport=$(cat ${servercfgdir}/Rcon.cfg | grep "Port=" | tr -cd '[:digit:]')
|
||||
rconpassword=$(cat ${servercfgdir}/Rcon.cfg | grep "Password=" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
rconport=$(grep "Port=" "${servercfgdir}/Rcon.cfg" | tr -cd '[:digit:]')
|
||||
rconpassword=$(grep "Password=" "${servercfgdir}/Rcon.cfg" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
|
||||
fi
|
||||
|
||||
rconport=${rconport:-"0"}
|
||||
@ -987,6 +1058,9 @@ elif [ "${engine}" == "projectzomboid" ]; then
|
||||
# ARMA 3
|
||||
elif [ "${engine}" == "realvirtuality" ]; then
|
||||
fn_info_config_realvirtuality
|
||||
# Rising World
|
||||
elif [ "${shortname}" == "rw" ]; then
|
||||
fn_info_config_risingworld
|
||||
# Serious Sam
|
||||
elif [ "${engine}" == "seriousengine35" ]; then
|
||||
fn_info_config_seriousengine35
|
||||
@ -1025,6 +1099,8 @@ elif [ "${gamename}" == "7 Days To Die" ]; then
|
||||
fn_info_config_sdtd
|
||||
elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
|
||||
fn_info_config_wolfensteinenemyterritory
|
||||
elif [ "${gamename}" == "ET: Legacy" ]; then
|
||||
fn_info_config_etlegacy
|
||||
elif [ "${gamename}" == "Multi Theft Auto" ]; then
|
||||
fn_info_config_mta
|
||||
elif [ "${gamename}" == "Squad" ]; then
|
||||
|
@ -135,6 +135,13 @@ if [ -d "${backupdir}" ]; then
|
||||
fi
|
||||
|
||||
# External IP address
|
||||
if [ -z "${extip}" ];then
|
||||
extip=$(${curlpath} -m 3 ifconfig.co 2>/dev/null)
|
||||
if [ -z "${extip}" ]; then
|
||||
extip=$(${curlpath} -m 3 ifconfig.co > "${tmpdir}/extip.txt" 2>/dev/null)
|
||||
if [ $? -ne 0 ]; then
|
||||
if [ -f "${tmpdir}/extip.txt" ]; then
|
||||
echo "${tmpdir}/extip.txt"
|
||||
else
|
||||
echo "x.x.x.x"
|
||||
fi
|
||||
fi
|
||||
fi
|
@ -26,6 +26,7 @@ elif [ "${gamename}" == "Blade Symphony" ]; then
|
||||
glibcfix="yes"
|
||||
elif [ "${gamename}" == "BrainBread 2" ]; then
|
||||
glibcrequired="2.17"
|
||||
glibcfix="no"
|
||||
elif [ "${gamename}" == "Call of Duty" ]; then
|
||||
glibcrequired="2.1"
|
||||
glibcfix="no"
|
||||
@ -57,7 +58,7 @@ elif [ "${gamename}" == "Empires Mod" ]; then
|
||||
glibcrequired="2.15"
|
||||
glibcfix="yes"
|
||||
elif [ "${gamename}" == "Factorio" ]; then
|
||||
glibcrequired="2.15"
|
||||
glibcrequired="2.18"
|
||||
glibcfix="yes"
|
||||
elif [ "${gamename}" == "Fistful of Frags" ]; then
|
||||
glibcrequired="2.15"
|
||||
@ -95,6 +96,9 @@ elif [ "${gamename}" == "Quake 3: Arena" ]; then
|
||||
elif [ "${gamename}" == "Quake Live" ]; then
|
||||
glibcrequired="2.15"
|
||||
glibcfix="no"
|
||||
elif [ "${shortname}" == "rw" ]; then
|
||||
glibcrequired="2.14"
|
||||
glibcfix="no"
|
||||
elif [ "${gamename}" == "San Andreas Multiplayer" ]; then
|
||||
glibcrequired="2.3"
|
||||
glibcfix="no"
|
||||
@ -182,6 +186,9 @@ elif [ "${engine}" == "refractor" ]; then
|
||||
elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
|
||||
glibcrequired="2.2.4"
|
||||
glibcfix="no"
|
||||
elif [ "${gamename}" == "ET: Legacy" ]; then
|
||||
glibcrequired="2.7"
|
||||
glibcfix="no"
|
||||
elif [ "${gamename}" == "Multi Theft Auto" ]; then
|
||||
glibcrequired="2.7"
|
||||
glibcfix="no"
|
||||
|
@ -2,7 +2,7 @@
|
||||
# LinuxGSM info_messages.sh function
|
||||
# Author: Daniel Gibbs
|
||||
# Website: https://linuxgsm.com
|
||||
# Description: Defines server info messages for details, alerts.
|
||||
# Description: Defines server info messages for details and alerts.
|
||||
|
||||
# Standard Details
|
||||
# This applies to all engines
|
||||
@ -122,7 +122,9 @@ fn_info_message_gameserver(){
|
||||
fn_messages_separator
|
||||
{
|
||||
# Server name
|
||||
if [ -n "${servername}" ]; then
|
||||
if [ -n "${gdname}" ]; then
|
||||
echo -e "${blue}Server name:\t${default}${gdname}"
|
||||
elif [ -n "${servername}" ]; then
|
||||
echo -e "${blue}Server name:\t${default}${servername}"
|
||||
fi
|
||||
|
||||
@ -181,9 +183,43 @@ fn_info_message_gameserver(){
|
||||
echo -e "${blue}Stats password:\t${default}${statspassword}"
|
||||
fi
|
||||
|
||||
# Maxplayers
|
||||
if [ -n "${maxplayers}" ]; then
|
||||
echo -e "${blue}Maxplayers:\t${default}${maxplayers}"
|
||||
# Players
|
||||
|
||||
if [ "${querystatus}" != "0" ]; then
|
||||
if [ -n "${maxplayers}" ]; then
|
||||
echo -e "${blue}Maxplayers:\t${default}${maxplayers}"
|
||||
fi
|
||||
else
|
||||
if [ -n "${gdplayers}" ]&&[ -n "${gdmaxplayers}" ]; then
|
||||
echo -e "${blue}Players:\t${default}${gdplayers}/${gdmaxplayers}"
|
||||
|
||||
elif [ -n "${gdplayers}" ]&&[ -n "${maxplayers}" ]; then
|
||||
echo -e "${blue}Players:\t${default}${gdplayers}/${maxplayers}"
|
||||
|
||||
elif [ -z "${gdplayers}" ]&&[ -n "${gdmaxplayers}" ]; then
|
||||
echo -e "${blue}Players:\t${default}0/${gdmaxplayers}"
|
||||
|
||||
elif [ -n "${gdplayers}" ]&&[ -z "${gdmaxplayers}" ]; then
|
||||
echo -e "${blue}Players:\t${default}${gdplayers}|∞"
|
||||
|
||||
elif [ -z "${gdplayers}" ]&&[ -z "${gdmaxplayers}" ]&&[ -n "${maxplayers}" ]; then
|
||||
echo -e "${blue}Maxplayers:\t${default}${maxplayers}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Bots
|
||||
if [ -n "${gdbots}" ]; then
|
||||
echo -e "${blue}Bots:\t${default}${gdbots}"
|
||||
fi
|
||||
|
||||
# Current Map
|
||||
if [ -n "${gdmap}" ]; then
|
||||
echo -e "${blue}Current Map:\t${default}${gdmap}"
|
||||
fi
|
||||
|
||||
# Default Map
|
||||
if [ -n "${defaultmap}" ]; then
|
||||
echo -e "${blue}Default Map:\t${default}${defaultmap}"
|
||||
fi
|
||||
|
||||
# Game mode
|
||||
@ -406,19 +442,19 @@ fn_info_message_ports(){
|
||||
for port_edit in "${ports_edit_array[@]}"
|
||||
do
|
||||
if [ "${shortname}" == "ut3" ]; then
|
||||
parmslocation="${servercfgdir}/UTEngine.ini\n${servercfgdir}/UTWeb.ini"
|
||||
parmslocation="${servercfgdir}/UTWeb.ini"
|
||||
elif [ "${shortname}" == "kf2" ]; then
|
||||
parmslocation="${servercfgdir}/LinuxServer-KFEngine.ini\n${servercfgdir}/KFWeb.ini"
|
||||
elif [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then
|
||||
parmslocation="${servercfgfullpath}"
|
||||
fi
|
||||
done
|
||||
# engines/games that require editing in the script file
|
||||
# engines/games that require editing the parms
|
||||
local ports_edit_array=( "goldsource" "Factorio" "Hurtworld" "iw3.0" "Rust" "spark" "source" "starbound" "unreal4" "realvirtuality")
|
||||
for port_edit in "${ports_edit_array[@]}"
|
||||
do
|
||||
if [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then
|
||||
parmslocation="${selfname}"
|
||||
parmslocation="${configdirserver}"
|
||||
fi
|
||||
done
|
||||
echo -e "${parmslocation}"
|
||||
@ -443,7 +479,7 @@ fn_info_logs(){
|
||||
|
||||
if [ -n "${lgsmlog}" ]; then
|
||||
echo -e "\nScript log\n==================="
|
||||
if [ ! "$(ls -A ${lgsmlogdir})" ]; then
|
||||
if [ ! "$(ls -A "${lgsmlogdir}")" ]; then
|
||||
echo "${lgsmlogdir} (NO LOG FILES)"
|
||||
elif [ ! -s "${lgsmlog}" ]; then
|
||||
echo "${lgsmlog} (LOG FILE IS EMPTY)"
|
||||
@ -456,7 +492,7 @@ fn_info_logs(){
|
||||
|
||||
if [ -n "${consolelog}" ]; then
|
||||
echo -e "\nConsole log\n===================="
|
||||
if [ ! "$(ls -A ${consolelogdir})" ]; then
|
||||
if [ ! "$(ls -A "${consolelogdir}")" ]; then
|
||||
echo "${consolelogdir} (NO LOG FILES)"
|
||||
elif [ ! -s "${consolelog}" ]; then
|
||||
echo "${consolelog} (LOG FILE IS EMPTY)"
|
||||
@ -469,12 +505,12 @@ fn_info_logs(){
|
||||
|
||||
if [ -n "${gamelogdir}" ]; then
|
||||
echo -e "\nServer log\n==================="
|
||||
if [ ! "$(ls -A ${gamelogdir})" ]; then
|
||||
if [ ! "$(ls -A "${gamelogdir}")" ]; then
|
||||
echo "${gamelogdir} (NO LOG FILES)"
|
||||
else
|
||||
echo "${gamelogdir}"
|
||||
# dos2unix sed 's/\r//'
|
||||
tail "${gamelogdir}"/* 2>/dev/null | grep -v "==>" | sed '/^$/d' | sed 's/\r//'| tail -25
|
||||
tail "${gamelogdir}"/* 2>/dev/null | grep -v "==>" | sed '/^$/d' | sed 's/\r//' | tail -25
|
||||
fi
|
||||
echo ""
|
||||
fi
|
||||
@ -739,6 +775,17 @@ fn_info_message_refractor(){
|
||||
} | column -s $'\t' -t
|
||||
}
|
||||
|
||||
fn_info_message_risingworld(){
|
||||
echo -e "netstat -atunp | grep java"
|
||||
echo -e ""
|
||||
{
|
||||
echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
|
||||
echo -e "> Game/Query\tINBOUND\t${port}\ttcp/udp"
|
||||
echo -e "> http query\tINBOUND\t${httpqueryport}\ttcp"
|
||||
echo -e "> RCON\tINBOUND\t${rconport}\ttcp"
|
||||
} | column -s $'\t' -t
|
||||
}
|
||||
|
||||
fn_info_message_rust(){
|
||||
echo -e "netstat -atunp | grep Rust"
|
||||
echo -e ""
|
||||
@ -948,7 +995,8 @@ fn_info_message_unreal3(){
|
||||
echo -e ""
|
||||
{
|
||||
echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
|
||||
echo -e "> Game/Query\tINBOUND\t${port}\ttcp/udp"
|
||||
echo -e "> Game\tINBOUND\t${port}\tudp"
|
||||
echo -e "> Query\tINBOUND\t${queryport}\tudp"
|
||||
echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
|
||||
} | column -s $'\t' -t
|
||||
echo -e ""
|
||||
@ -967,8 +1015,8 @@ fn_info_message_kf2(){
|
||||
echo -e ""
|
||||
{
|
||||
echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
|
||||
echo -e "> Game\tINBOUND\t${port}\ttcp"
|
||||
echo -e "> Query\tINBOUND\t${queryport}\ttcp/udp"
|
||||
echo -e "> Game\tINBOUND\t${port}\ttcp\tPort=${port}"
|
||||
echo -e "> Query\tINBOUND\t${queryport}\tudp"
|
||||
echo -e "> Steam\tINBOUND\t20560\tudp"
|
||||
echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
|
||||
} | column -s $'\t' -t
|
||||
@ -992,6 +1040,15 @@ fn_info_message_wolfensteinenemyterritory(){
|
||||
} | column -s $'\t' -t
|
||||
}
|
||||
|
||||
fn_info_message_etlegacy(){
|
||||
echo -e "netstat -atunp | grep etlded"
|
||||
echo -e ""
|
||||
{
|
||||
echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
|
||||
echo -e "> Game/Query\tINBOUND\t${port}\tudp"
|
||||
} | column -s $'\t' -t
|
||||
}
|
||||
|
||||
fn_info_message_mta(){
|
||||
echo -e "netstat -atunp | grep mta-server64"
|
||||
echo -e ""
|
||||
@ -1025,6 +1082,8 @@ fn_info_message_select_engine(){
|
||||
fn_info_message_cod4
|
||||
elif [ "${gamename}" == "Call of Duty: World at War" ]; then
|
||||
fn_info_message_codwaw
|
||||
elif [ "${gamename}" == "ET: Legacy" ]; then
|
||||
fn_info_message_etlegacy
|
||||
elif [ "${gamename}" == "Factorio" ]; then
|
||||
fn_info_message_factorio
|
||||
elif [ "${gamename}" == "Hurtworld" ]; then
|
||||
@ -1061,6 +1120,8 @@ fn_info_message_select_engine(){
|
||||
fn_info_message_mumble
|
||||
elif [ "${gamename}" == "Rust" ]; then
|
||||
fn_info_message_rust
|
||||
elif [ "${shortname}" == "rw" ]; then
|
||||
fn_info_message_risingworld
|
||||
elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
|
||||
fn_info_message_wolfensteinenemyterritory
|
||||
elif [ "${engine}" == "refractor" ]; then
|
||||
|
@ -24,6 +24,7 @@ fn_info_parms_ark(){
|
||||
|
||||
fn_info_parms_realvirtuality(){
|
||||
port=${port:-"0"}
|
||||
queryport=$((port + 1))
|
||||
}
|
||||
|
||||
fn_info_parms_cod(){
|
||||
@ -68,6 +69,14 @@ fn_info_parms_quake2(){
|
||||
defaultmap=${defaultmap:-"NOT SET"}
|
||||
}
|
||||
|
||||
fn_info_parms_risingworld(){
|
||||
servername=${servername:-"NOT SET"}
|
||||
port=${port:-"0"}
|
||||
queryport=${port}
|
||||
httpqueryport=$((port - 1))
|
||||
|
||||
}
|
||||
|
||||
fn_info_parms_rust(){
|
||||
servername=${servername:-"NOT SET"}
|
||||
port=${port:-"0"}
|
||||
@ -145,6 +154,9 @@ elif [ "${gamename}" == "Quake 2" ]||[ "${gamename}" == "Quake 3: Arena" ]; then
|
||||
# Rust
|
||||
elif [ "${gamename}" == "Rust" ]; then
|
||||
fn_info_parms_rust
|
||||
# Rising World
|
||||
elif [ "${shortname}" == "rw" ]; then
|
||||
fn_info_parms_risingworld
|
||||
# Serious Sam
|
||||
elif [ "${engine}" == "seriousengine35" ]; then
|
||||
fn_info_config_seriousengine35
|
||||
@ -158,7 +170,7 @@ elif [ "${gamename}" == "Tower Unite" ]; then
|
||||
# Unreal/Unreal 2 engine
|
||||
elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
|
||||
fn_info_parms_unreal
|
||||
# Unreal/Unreal 2 engine
|
||||
# Unreal 3 engine
|
||||
elif [ "${engine}" == "unreal3" ]; then
|
||||
fn_info_parms_unreal3
|
||||
fi
|
||||
|
@ -23,7 +23,7 @@ fn_fetch_default_config(){
|
||||
echo "Downloading ${gamename} Configs"
|
||||
echo "================================="
|
||||
echo "default configs from https://github.com/GameServerManagers/Game-Server-Configs"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
mkdir -p "${lgsmdir}/config-default/config-game"
|
||||
githuburl="https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/master"
|
||||
for config in "${array_configs[@]}"; do
|
||||
@ -38,16 +38,19 @@ fn_default_config_remote(){
|
||||
echo "copying ${config} config file."
|
||||
fn_script_log_info "copying ${servercfg} config file."
|
||||
if [ "${config}" == "${servercfgdefault}" ]; then
|
||||
mkdir -p "${servercfgdir}"
|
||||
cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}"
|
||||
elif [ "${gamename}" == "ARMA 3" ]&&[ "${config}" == "${networkcfgdefault}" ]; then
|
||||
mkdir -p "${servercfgdir}"
|
||||
cp -nv "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}"
|
||||
elif [ "${gamename}" == "Don't Starve Together" ]&&[ "${config}" == "${clustercfgdefault}" ]; then
|
||||
cp -nv "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}"
|
||||
else
|
||||
mkdir -p "${servercfgdir}"
|
||||
cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}"
|
||||
fi
|
||||
done
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
}
|
||||
|
||||
# Changes some variables within the default configs
|
||||
@ -60,7 +63,7 @@ fn_set_config_vars(){
|
||||
rconpass="admin$random"
|
||||
echo "changing hostname."
|
||||
fn_script_log_info "changing hostname."
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
if grep -q "SERVERNAME=SERVERNAME" "${lgsmdir}/config-default/config-game/${config}" 2>/dev/null; then
|
||||
sed -i "s/SERVERNAME=SERVERNAME/SERVERNAME=${servername}/g" "${servercfgfullpath}"
|
||||
else
|
||||
@ -69,11 +72,11 @@ fn_set_config_vars(){
|
||||
echo "changing rcon/admin password."
|
||||
fn_script_log_info "changing rcon/admin password."
|
||||
sed -i "s/ADMINPASSWORD/${rconpass}/g" "${servercfgfullpath}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
else
|
||||
fn_script_log_warn "Config file not found, cannot alter it."
|
||||
echo "Config file not found, cannot alter it."
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
fi
|
||||
}
|
||||
|
||||
@ -84,16 +87,16 @@ fn_set_dst_config_vars(){
|
||||
echo "changing server name."
|
||||
fn_script_log_info "changing server name."
|
||||
sed -i "s/SERVERNAME/LinuxGSM/g" "${clustercfgfullpath}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "changing shard mode."
|
||||
fn_script_log_info "changing shard mode."
|
||||
sed -i "s/USESHARDING/${sharding}/g" "${clustercfgfullpath}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "randomizing cluster key."
|
||||
fn_script_log_info "randomizing cluster key."
|
||||
randomkey=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c 8 | xargs)
|
||||
sed -i "s/CLUSTERKEY/${randomkey}/g" "${clustercfgfullpath}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
else
|
||||
echo "${clustercfg} is already configured."
|
||||
fn_script_log_info "${clustercfg} is already configured."
|
||||
@ -111,11 +114,11 @@ fn_set_dst_config_vars(){
|
||||
echo "changing shard name."
|
||||
fn_script_log_info "changing shard name."
|
||||
sed -i "s/SHARDNAME/${shard}/g" "${servercfgfullpath}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "changing master setting."
|
||||
fn_script_log_info "changing master setting."
|
||||
sed -i "s/ISMASTER/${master}/g" "${servercfgfullpath}"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
|
||||
## worldgenoverride.lua
|
||||
if [ "${cave}" == "true" ]; then
|
||||
@ -123,7 +126,7 @@ fn_set_dst_config_vars(){
|
||||
fn_script_log_info "defining ${shard} as cave in ${servercfgdir}/worldgenoverride.lua."
|
||||
echo 'return { override_enabled = true, preset = "DST_CAVE", }' > "${servercfgdir}/worldgenoverride.lua"
|
||||
fi
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo ""
|
||||
}
|
||||
|
||||
@ -293,6 +296,12 @@ elif [ "${gamename}" == "Double Action: Boogaloo" ]; then
|
||||
fn_fetch_default_config
|
||||
fn_default_config_remote
|
||||
fn_set_config_vars
|
||||
elif [ "${gamename}" == "ET: Legacy" ]; then
|
||||
gamedirname="ETLegacy"
|
||||
array_configs+=( server.cfg )
|
||||
fn_fetch_default_config
|
||||
fn_default_config_remote
|
||||
fn_set_config_vars
|
||||
elif [ "${gamename}" == "Factorio" ]; then
|
||||
gamedirname="Factorio"
|
||||
array_configs+=( server-settings.json )
|
||||
|
@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
|
||||
echo ""
|
||||
echo "Enter ${gamename} Cluster Token"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "A cluster token is required to run this server!"
|
||||
echo "Follow the instructions in this link to obtain this key:"
|
||||
echo "https://linuxgsm.com/dst-auth-token"
|
||||
|
@ -10,6 +10,6 @@ local commandaction="Install"
|
||||
echo ""
|
||||
echo "Creating initial Factorio savefile"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
check_glibc.sh
|
||||
"${executabledir}"/factorio --create ${serverfiles}/save1
|
||||
"${executabledir}"/factorio --create "${serverfiles}/save1"
|
||||
|
@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
|
||||
echo ""
|
||||
echo "Game Server Login Token"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
if [ "${gamename}" == "Counter-Strike: Global Offensive" ]||[ "${gamename}" == "Counter-Strike: Source" ]||[ "${gamename}" == "No More Room in Hell" ]; then
|
||||
echo "GSLT is required to run a public ${gamename} server"
|
||||
fn_script_log_info "GSLT is required to run a public ${gamename} server"
|
||||
@ -37,7 +37,7 @@ if [ -z "${autoinstall}" ]; then
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
if [ "${gamename}" == "Tower Unite" ]; then
|
||||
echo "The GSLT can be changed by editing ${servercfgdir}/${servercfg}."
|
||||
fn_script_log_info "The GSLT can be changed by editing ${servercfgdir}/${servercfg}."
|
||||
|
@ -13,7 +13,7 @@ if [ "${checklogs}" != "1" ]; then
|
||||
echo "Creating log directories"
|
||||
echo "================================="
|
||||
fi
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
# Create LinuxGSM logs
|
||||
echo -ne "installing log dir: ${logdir}..."
|
||||
mkdir -p "${logdir}"
|
||||
@ -77,7 +77,7 @@ fi
|
||||
# e.g serverfiles/log is not within log/: symlink created
|
||||
# log/server is in log/: symlink not created
|
||||
if [ -n "${gamelogdir}" ]; then
|
||||
if [ "${gamelogdir:0:${#logdir}}" != "${logdir}" ];then
|
||||
if [ "${gamelogdir:0:${#logdir}}" != "${logdir}" ]; then
|
||||
echo -ne "creating symlink to game log dir: ${logdir}/server -> ${gamelogdir}..."
|
||||
ln -nfs "${gamelogdir}" "${logdir}/server"
|
||||
if [ $? -ne 0 ]; then
|
||||
@ -102,5 +102,5 @@ if [ -d "${rootdir}/Steam/logs" ]; then
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
fn_script_log_info "Logs installed"
|
||||
|
@ -7,7 +7,7 @@
|
||||
echo ""
|
||||
echo "Accept ${gamename} EULA"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "You are required to accept the EULA:"
|
||||
echo "https://account.mojang.com/documents/minecraft_eula"
|
||||
|
||||
|
@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
|
||||
echo ""
|
||||
echo "Server Directory"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
if [ -d "${serverfiles}" ]; then
|
||||
fn_print_warning_nl "A server is already installed here."
|
||||
fi
|
||||
@ -24,5 +24,4 @@ if [ -z "${autoinstall}" ]; then
|
||||
fi
|
||||
if [ ! -d "${serverfiles}" ]; then
|
||||
mkdir -v "${serverfiles}"
|
||||
fi
|
||||
sleep 1
|
||||
fi
|
@ -21,6 +21,8 @@ fn_install_server_files(){
|
||||
remote_fileurl="http://files.linuxgsm.com/CallOfDuty4/cod4x18_dedrun.tar.bz2"; local_filedir="${tmpdir}"; local_filename="cod4x18_dedrun.tar.bz2"; chmodx="nochmodx" run="norun"; force="noforce"; md5="bebdfc1755626462bdaad49f6f926c08"
|
||||
elif [ "${gamename}" == "Call of Duty: World at War" ]; then
|
||||
remote_fileurl="http://files.linuxgsm.com/CallOfDutyWorldAtWar/codwaw-lnxded-1.7-full.tar.bz2"; local_filedir="${tmpdir}"; local_filename="codwaw-lnxded-1.7-full.tar.bz2"; chmodx="nochmodx" run="norun"; force="noforce"; md5="0489697ff3bf678c109bfb377d1b7895"
|
||||
elif [ "${shortname}" == "etl" ]; then
|
||||
remote_fileurl="http://files.linuxgsm.com/WolfensteinEnemyTerritory/etlegacy-v2.75-i386-et-260b.tar.bz2"; local_filedir="${tmpdir}"; local_filename="etlegacy-v2.75-i386-et-260b.tar.bz2"; chmodx="nochmodx" run="norun"; force="noforce"; md5="92d7d4c26e0a295daed78cef623eeabb"
|
||||
elif [ "${gamename}" == "GoldenEye: Source" ]; then
|
||||
remote_fileurl="http://files.linuxgsm.com/GoldenEyeSource/GoldenEye_Source_v5.0.6_full_server.tar.bz2"; local_filedir="${tmpdir}"; local_filename="GoldenEye_Source_v5.0.6_full_server.tar.bz2"; chmodx="nochmodx" run="norun"; force="noforce"; md5="c45c16293096706e8b5e2cd64a6f2931"
|
||||
elif [ "${gamename}" == "Quake 2" ]; then
|
||||
@ -65,7 +67,7 @@ fn_install_server_files_steamcmd(){
|
||||
|
||||
if [ "${counter}" -ge "7" ]; then
|
||||
echo "Removing $(find ${serverfiles} -type d -print0 | grep -Ez '[^/]{30}$')"
|
||||
find ${serverfiles} -type d -print0 | grep -Ez '[^/]{30}$' | xargs -0 rm -rf
|
||||
find "${serverfiles}" -type d -print0 | grep -Ez '[^/]{30}$' | xargs -0 rm -rf
|
||||
fi
|
||||
if [ "${counter}" -ge "9" ]; then
|
||||
rm -rf "${steamcmddir}"
|
||||
@ -74,7 +76,7 @@ fn_install_server_files_steamcmd(){
|
||||
|
||||
# Detects if unbuffer command is available for 32 bit distributions only.
|
||||
info_distro.sh
|
||||
if [ $(command -v stdbuf 2>/dev/null) ]&&[ "${arch}" != "x86_64" ]; then
|
||||
if [ "$(command -v stdbuf 2>/dev/null)" ]&&[ "${arch}" != "x86_64" ]; then
|
||||
unbuffer="stdbuf -i0 -o0 -e0"
|
||||
fi
|
||||
|
||||
@ -85,11 +87,6 @@ fn_install_server_files_steamcmd(){
|
||||
else
|
||||
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${branch} +quit
|
||||
local exitcode=$?
|
||||
|
||||
if [ "${gamename}" == "Classic Offensive" ]; then
|
||||
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid_co}" ${branch} +quit
|
||||
local exitcode=$?
|
||||
fi
|
||||
fi
|
||||
elif [ "${counter}" -ge "5" ]; then
|
||||
if [ "${engine}" == "goldsource" ]; then
|
||||
@ -98,11 +95,6 @@ fn_install_server_files_steamcmd(){
|
||||
else
|
||||
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${branch} validate +quit
|
||||
local exitcode=$?
|
||||
|
||||
if [ "${gamename}" == "Classic Offensive" ]; then
|
||||
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid_co}" ${branch} -validate +quit
|
||||
local exitcode=$?
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
elif [ "${counter}" -ge "11" ]; then
|
||||
@ -128,7 +120,7 @@ fn_install_server_files_steamcmd(){
|
||||
echo ""
|
||||
echo "Installing ${gamename} Server"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
|
||||
if [ -n "${appid}" ]; then
|
||||
fn_install_server_files_steamcmd
|
||||
|
@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
|
||||
echo ""
|
||||
echo "Squad Server License"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "Server license is an optional feature for ${gamename} server"
|
||||
fn_script_log_info "Server license is an optional feature for ${gamename} server"
|
||||
|
||||
@ -20,7 +20,7 @@ echo "http://forums.joinsquad.com/topic/16519-server-licensing-general-info/"
|
||||
fn_script_log_info "Get more info and a server license here:"
|
||||
fn_script_log_info "http://forums.joinsquad.com/topic/16519-server-licensing-general-info/"
|
||||
echo ""
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "The Squad server license can be changed by editing ${servercfgdir}/License.cfg."
|
||||
fn_script_log_info "The Squad server license can be changed by editing ${selfname}."
|
||||
echo ""
|
@ -10,5 +10,5 @@ local commandaction="Install"
|
||||
echo ""
|
||||
echo "Installing SteamCMD"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
check_steamcmd.sh
|
||||
|
@ -13,7 +13,7 @@ fn_install_ts3db_mariadb(){
|
||||
echo ""
|
||||
echo "checking if libmariadb2 is installed"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
ldd "${serverfiles}/libts3db_mariadb.so" | grep "libmariadb.so.2 => not found"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "libmariadb2 not installed. Please install it first."
|
||||
@ -25,7 +25,7 @@ fn_install_ts3db_mariadb(){
|
||||
echo ""
|
||||
echo "Configuring ${gamename} Server for MariaDB/MySQL"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
read -rp "Enter MariaDB hostname: " mariahostname
|
||||
read -rp "Enter MariaDB port: " mariaport
|
||||
read -rp "Enter MariaDB username: " mariausername
|
||||
@ -45,7 +45,7 @@ fn_install_ts3db_mariadb(){
|
||||
sed -i "s/dbpluginparameter=/dbpluginparameter=ts3db_mariadb.ini/g" "${servercfgfullpath}"
|
||||
sed -i "s/dbsqlcreatepath=create_sqlite\//dbsqlcreatepath=create_mariadb\//g" "${servercfgfullpath}"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
}
|
||||
|
||||
if [ -z "${autoinstall}" ]; then
|
||||
@ -61,16 +61,16 @@ fi
|
||||
fn_script_log "Accepting ts3server license: ${executabledir}/LICENSE"
|
||||
fn_print_information_nl "Accepting TeamSpeak license:"
|
||||
echo " * ${executabledir}/LICENSE"
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
touch "${executabledir}/.ts3server_license_accepted"
|
||||
|
||||
## Get privilege key
|
||||
echo ""
|
||||
echo "Getting privilege key"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "IMPORANT! Save these details for later."
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
cd "${executabledir}" || exit
|
||||
./ts3server_startscript.sh start inifile=ts3-server.ini
|
||||
sleep 5
|
||||
|
@ -7,7 +7,7 @@
|
||||
echo ""
|
||||
echo "Accept ${gamename} EULA"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "You are required to accept the EULA:"
|
||||
echo "https://www.epicgames.com/unrealtournament/unreal-tournament-pre-alpha-test-development-build-eula/"
|
||||
|
||||
|
@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
|
||||
echo ""
|
||||
echo "Enter ${gamename} CD Key"
|
||||
echo "================================="
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
echo "To get your server listed on the Master Server list"
|
||||
echo "you must get a free CD key. Get a key here:"
|
||||
echo "https://forums.unrealtournament.com/utserver/cdkey.php?2004"
|
||||
@ -19,7 +19,7 @@ echo ""
|
||||
if [ -z "${autoinstall}" ]; then
|
||||
echo "Once you have the key enter it below"
|
||||
echo -n "KEY: "
|
||||
read CODE
|
||||
read -r CODE
|
||||
echo ""\""CDKey"\""="\""${CODE}"\""" > "${systemdir}/cdkey"
|
||||
if [ -f "${systemdir}/cdkey" ]; then
|
||||
fn_script_log_info "UT2K4 Server CD Key created"
|
||||
|