source: scripts/usr/local/bin/7dtd-common.sh @ 10

Last change on this file since 10 was 10, checked in by alloc, 9 years ago

Version 1

File size: 1.7 KB
Line 
1#!/bin/bash
2# Version 1
3
4# Provides common functions for 7dtd-scripts. Not intended to be run directly.
5
6# Check if the script is run as root (exit otherwise) and load global config
7checkRootLoadConf() {
8        if [ `id -u` -ne 0 ]; then
9                echo "This script has to be run as root!"
10                exit 10
11        fi
12        . /etc/7dtd.conf
13}
14
15# Get the config path for the given instance
16# Params:
17#   1: Instance name
18# Returns:
19#   Config path for instance
20getInstancePath() {
21        echo $SDTD_BASE/instances/$1
22}
23
24# Check if the given instance name is an existing instance
25# On failure exit the script!
26# Params:
27#   1: Instance name
28checkInstance() {
29        if [ -z $1 ]; then
30                echo "No instance given!"
31                exit 2
32        fi
33        if [ ! -d $(getInstancePath $1) ]; then
34                echo "Instance $1 does not exist!"
35                exit 3
36        fi
37}
38
39# Check if the given instance is currently running
40# Params:
41#   1: Instance name
42# Returns:
43#   0 = not running
44#   1 = running
45isRunning() {
46        start-stop-daemon --status --pidfile $(getInstancePath $1)/7dtd.pid
47        if [ $? -eq 0 ]; then
48                echo 1
49        else
50                echo 0
51        fi
52}
53
54# Get a single value from a serverconfig
55# Params:
56#   1: Instance name
57#   2: Property name
58# Returns:
59#   Property value
60getConfigValue() {
61        CONF=$(getInstancePath $1)/serverconfig.xml
62        xmllint --xpath "string(/ServerSettings/property[@name='$2']/@value)" $CONF
63}
64
65# Send a single command to the telnet port
66# Params:
67#   1: Instance name
68#   2: Command
69# Returns:
70#   String of telnet output
71telnetCommand() {
72        TEL_ENABLED=$(getConfigValue $1 TelnetEnabled)
73        TEL_PORT=$(getConfigValue $1 TelnetPort)
74        TEL_PASS=$(getConfigValue $1 TelnetPassword)   
75        if [ "$TEL_ENABLED" = "true" ] && [ -n "$TEL_PASS" ]; then
76                echo -e "$TEL_PASS\n$2\nexit" | nc -q 2 127.0.0.1 $TEL_PORT
77        else
78                echo "Telnet not enabled or no password set."
79        fi
80}
Note: See TracBrowser for help on using the repository browser.