Ignore:
Timestamp:
May 17, 2014, 6:01:31 PM (11 years ago)
Author:
alloc
Message:

More instance validation, switch to XMLStarlet, config.xml instead of serverconfig.xml, admins.xml instead of serveradmin.xml

File:
1 edited

Legend:

Unmodified
Added
Removed
  • scripts/usr/local/bin/7dtd-common.sh

    r13 r14  
    11#!/bin/bash
    2 # Version 2
     2# Version 3
    33
    44# Provides common functions for 7dtd-scripts. Not intended to be run directly.
     
    2323
    2424# Check if the given instance name is an existing instance
    25 # On failure exit the script!
    2625# Params:
    2726#   1: Instance name
    28 checkInstance() {
     27# Returns:
     28#   0/1 instance not valid/valid
     29isValidInstance() {
    2930        if [ -z $1 ]; then
    30                 echo "No instance given!"
    31                 exit 2
     31                echo 0
     32        else
     33                if [ ! -d $(getInstancePath $1) ]; then
     34                        echo 0
     35                else
     36                        if [ ! -f $(getInstancePath $1)/config.xml ]; then
     37                                echo 0
     38                        else
     39                                echo 1
     40                        fi
     41                fi
    3242        fi
    33         if [ ! -d $(getInstancePath $1) ]; then
    34                 echo "Instance $1 does not exist!"
    35                 exit 3
     43}
     44
     45# Check if the given instance is valid, exit the script otherwise
     46# Params:
     47#   1: instance name
     48checkInstanceValid() {
     49        if [ -z $1 ]; then
     50                echo "Missing parameter <instance>"
     51                exit 1
     52        fi
     53        if [ $(isValidInstance $1) -eq 0 ]; then
     54                echo "'$1' is not a valid instance"
     55                exit 1
    3656        fi
    3757}
     
    5070                echo 0
    5171        fi
     72}
     73
     74# Get list of defined instances
     75# Returns:
     76#   List of instances
     77getInstanceList() {
     78        for IF in $SDTD_BASE/instances/*; do
     79                I=`basename $IF`
     80                if [ $(isValidInstance $I) -eq 1 ]; then
     81                        echo $I
     82                fi
     83        done
    5284}
    5385
     
    74106#   Property value
    75107getConfigValue() {
    76         CONF=$(getInstancePath $1)/serverconfig.xml
    77         xmllint --xpath "string(/ServerSettings/property[@name='$2']/@value)" $CONF
     108        CONF=$(getInstancePath $1)/config.xml
     109        xmlstarlet sel -t -v "/ServerSettings/property[@name='$2']/@value" $CONF
    78110}
    79111
Note: See TracChangeset for help on using the changeset viewer.