| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #!/bin/bash
- # LGSM fn_select function
- # Author: Ilija Matoski (ilijamt@gmail.com)
- # Website: https://matoski.com
- # Version: 010316
- # Description: Automatically selects a created server from the available ones defined in the root
- # If no server files found <name>.<appid> it will default to the data in the game file
- if [ $usesrvcfg -eq 1 ]; then
- if [ -z "$appid" ]; then
- fn_printwarn "appid not found for $gamename, this is not supported.\n\n"
- exit
- fi
- # get all the available configs for the appid
- cfgs=()
- filelist=(`find $rootdir -type f -name "*.$appid"`)
- for file in "${filelist[@]}"; do
- cfg=${file:${#rootdir}+1}
- cfg=${cfg:0:${#cfg} - 4}
- cfgs+=("$cfg")
- done
- # create the append extra list for the options
- appendextra=$(printf "|%s" "${cfgs[@]}")
- appendextra=${appendextra:1}
- loadcfg=
- invalidcfg=0
- reinit=0
- # if we don't have any config files proced as normal so skip the next part
- if [ ${#cfgs[@]} -eq 1 ]; then
- # we have only one config file so we load that one only unless the user specifies it manually, then we verify
- loadcfg="${cfgs[0]}";
- if [ ! -z "$getsrvcfg" ] && [ ! -f "${getsrvcfg}.${appid}" ]; then
- invalidcfg=1
- fi
- elif [ ${#cfgs[@]} -gt 0 ]; then
- # we have more than one files available so we continue on the verification if the file is present
- loadcfg="$getsrvcfg";
- if [ -z "$getsrvcfg" ] || [ ! -f "${getsrvcfg}.${appid}" ]; then
- invalidcfg=1
- fi
- else
- # we don't have anything so we need to continue on without touching anything
- reinit=0
- loadcfg=
- fi
- # it's invalid cfg setting
- if [ $invalidcfg -eq 1 ]; then
- if [ -z "$getsrvcfg" ]; then
- fn_printwarn "configuration file not specified, use one of the available ones ($appendextra)\n"
- else
- fn_printwarn "$getsrvcfg configuration file does not exist, use one of the available ones ($appendextra)\n"
- fi
- getopt=
- fn_getopt
- else
- if [ ! -z "$loadcfg" ] && [ -f "${getsrvcfg}.${appid}" ]; then
- # everything OK, load the config file and reinit the variables
- source "${loadcfg}.${appid}"
- reinit=1
- fi
- fi
- if [ $reinit -eq 1 ]; then
- case "$appid" in
- *)
- lockselfname=".${servicename}.lock"
- servercfg="${servicename}.cfg"
- servercfgfullpath="${servercfgdir}/${servercfg}"
- scriptlog="${scriptlogdir}/${servicename}-script.log"
- consolelog="${consolelogdir}/${servicename}-console.log"
- emaillog="${scriptlogdir}/${servicename}-email.log"
- scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
- consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
- ;;
- esac
- fi
- fi
|