Changes in / [20:30]


Ignore:
Files:
3 added
1 deleted
17 edited

Legend:

Unmodified
Added
Removed
  • /bootstrapper/bootstrap.sh

    r20 r30  
    11#!/bin/bash
    2 
    3 INSTALLOPTIONALDEPS=0
     2# Version 1
     3
     4if [ `id -u` -ne 0 ]; then
     5        echo "This script has to be run as root!"
     6        exit 1
     7fi
     8
     9
    410ADDCRONJOBS=0
    511RUNINSTALL=0
    612
    7 DEPENDENCIES="xvfb mono-runtime rsync libxml2-utils"
    8 OPTDEPENDENCIES="sendemail sendxmpp"
     13DEPENDENCIES="xvfb mono-runtime rsync xmlstarlet"
    914
    1015if [ -n "$(command -v apt-get)" ]; then
     
    2025fi
    2126
    22 if [[ $IS64BIT == 1 ]]; then
     27if [ $IS64BIT -eq 1 ]; then
    2328        DEPENDENCIES="$DEPENDENCIES lib32gcc1 wine:i386"
    2429else
     
    2732
    2833showHelp() {
    29         echo "Usage: ./bootstrap.sh [-h] [-o] [-c] -i"
     34        echo "Usage: ./bootstrap.sh [-h] [-c] -i"
    3035        echo "Parameters:"
    3136        echo "  -h   Print this help screen and exit"
    32         echo "  -o   Install optional dependencies ($OPTDEPENDENCIES)"
     37#       echo "  -o   Install optional dependencies ($OPTDEPENDENCIES)"
    3338        echo "  -c   Add cron jobs for save backups and memory checking"
    3439        echo "  -i   Required to actually start the installation"
     
    4146        echo "This will install a 7DtD server according to the information"
    4247        echo "given on:"
    43         echo "   http://7daystodie.gamepedia.com/Linux_Server"
     48        echo "   https://7dtd.illy.bz/"
    4449        echo
    4550        read -p "Press enter to continue"
     
    4853
    4954nonDebianWarning() {
    50         if [[ $ISDEBIAN == 0 ]]; then
     55        if [ $ISDEBIAN -eq 0 ]; then
    5156                echo "NOTE: It seems like this system is not based on Debian."
    5257                echo "Although installation of the scripts and SteamCMD/7dtd"
    5358                echo "will work the installed management scripts will probably"
    54                 echo "*NOT* work out of the box and installation of dependencies"
    55                 echo "will fail too."
     59                echo "fail because of missing dependencies. Make sure you check"
     60                echo "the website regarding the prerequisites"
     61                echo "(https://7dtd.illy.bz)."
    5662                echo "Do you want to continue anyway?"
    5763                select yn in "Yes" "No"; do
     
    7278installAptDeps() {
    7379        echo -e "Installing dependencies\n"
    74         if [[ $IS64BIT == 1 ]]; then
     80        if [ $IS64BIT -eq 1 ]; then
    7581                dpkg --add-architecture i386
    7682        fi
     
    95101        echo -e "Downloading and installing management scripts\n"
    96102        wget -nv http://illy.bz/fi/7dtd/management_scripts.tar.gz -O /tmp/management_scripts.tar.gz
    97         tar -xzf /tmp/management_scripts.tar.gz --no-same-owner --owner=root --group=root -C /
    98         chmod go-rwx /etc/7dtd.conf
    99         chmod +x /etc/init.d/7dtd.sh
    100         chmod +x /usr/local/bin/7dtd-*
    101         if [[ $ISDEBIAN == 1 ]]; then
     103        tar --touch -xzf /tmp/management_scripts.tar.gz -C /
     104
     105        chown root.root /etc/7dtd.conf
     106        chmod 0600 /etc/7dtd.conf
     107
     108        chown sdtd.sdtd /home/sdtd -R
     109
     110        chown root.root /etc/init.d/7dtd.sh
     111        chown root.root /etc/bash_completion.d/7dtd
     112        chown root.root /usr/local/bin/7dtd.sh
     113        chown root.root /usr/local/lib/7dtd -R
     114        chmod 0755 /etc/init.d/7dtd.sh
     115        chmod 0755 /etc/bash_completion.d/7dtd
     116        chmod 0755 /usr/local/bin/7dtd.sh
     117        chmod 0755 /usr/local/lib/7dtd -R
     118
     119        if [ $ISDEBIAN -eq 1 ]; then
    102120                update-rc.d 7dtd.sh defaults
     121        else
     122                echo
     123                echo "Compiling start-stop-daemon"
     124                cd /usr/local/lib/7dtd/start-stop-daemon
     125                make
     126                make install
    103127        fi
    104128        echo -e "\n=============================================================\n\n"
     
    117141installSteamCmdAndSDTD() {
    118142        echo -e "Installing SteamCMD and 7DtD\n"
    119         7dtd-update.sh
    120         cp -p /home/sdtd/7dtd/serverconfig.xml /home/sdtd/
    121         echo -e "\n=============================================================\n\n"
    122 }
    123 
    124 setupServerConfig() {
    125         echo -e "Setting up basic 7DtD server config\n"
    126 
    127         until [[ $public == "y" || $public == "n" ]]; do
    128                 read -p "Should the server be public [yn]? " public
    129         done
    130         if [[ "$public" == "y" ]]; then public=true; else public=false; fi
    131         echo
    132 
    133         read -p "Server name: " servername
    134         echo
    135         read -p "Server password (empty for none): " serverpassword
    136         echo
    137 
    138         echo "Select world to play on:"
    139         select worldname in "Navezgane" "MP Forest Horde" "MP Forest Skirmish" "MP Wasteland Horde" "MP Wasteland Skirmish" "MP Wasteland War"; do
    140                 if [[ -n $worldname ]]; then
    141                         break
    142                 fi
    143         done
    144         echo
    145 
    146         echo "Select game mode:"
    147         select gamemode in "GameModeSurvival" "GameModeZombieHorde" "GameModeDeathmatch"; do
    148                 if [[ -n $gamemode ]]; then
    149                         break
    150                 fi
    151         done
    152         echo
    153 
    154         read -p "Game name: " gamename
    155         echo
    156         read -p "Difficulty (0-4): " difficulty
    157         echo
    158 
    159         sed -i "s/name=\"ServerIsPublic\".*value=\"[^\"]*\"/name=\"ServerIsPublic\" value=\"$public\"/" /home/sdtd/serverconfig.xml
    160         sed -i "s/name=\"ServerName\".*value=\"[^\"]*\"/name=\"ServerName\" value=\"$servername\"/" /home/sdtd/serverconfig.xml
    161         sed -i "s/name=\"ServerPassword\".*value=\"[^\"]*\"/name=\"ServerPassword\" value=\"$serverpassword\"/" /home/sdtd/serverconfig.xml
    162         sed -i "s/name=\"GameWorld\".*value=\"[^\"]*\"/name=\"GameWorld\" value=\"$worldname\"/" /home/sdtd/serverconfig.xml
    163         sed -i "s/name=\"GameName\".*value=\"[^\"]*\"/name=\"GameName\" value=\"$gamename\"/" /home/sdtd/serverconfig.xml
    164         sed -i "s/name=\"GameDifficulty\".*value=\"[^\"]*\"/name=\"GameDifficulty\" value=\"$difficulty\"/" /home/sdtd/serverconfig.xml
    165         sed -i "s/name=\"GameMode\".*value=\"[^\"]*\"/name=\"GameMode\" value=\"$gamemode\"/" /home/sdtd/serverconfig.xml
    166         sed -i "s/name=\"TelnetPort\".*value=\"[^\"]*\"/name=\"TelnetPort\" value=\"25003\"/" /home/sdtd/serverconfig.xml
    167 
     143        7dtd.sh updateengine
    168144        echo -e "\n=============================================================\n\n"
    169145}
    170146
    171147addCronJobs() {
    172         echo -e "Adding cron jobs\n"
     148        echo -e "Enabling backup cron job\n"
    173149
    174150        echo -e "By default a backup of the save folder will be created once"
    175151        echo -e "  per hour. This can be changed in /etc/cron.d/7dtd-backup."
    176         echo -e "Memory monitor will be run every five minutes by default."
    177         echo -e "  This can be changed in /etc/cron.d/7dtd-check_mem."
    178 
    179         echo "0 *     * * *   root    /usr/local/bin/7dtd-backup.sh" > /etc/cron.d/7dtd-backup
    180         echo "*/5 *   * * *   root    /usr/local/bin/7dtd-check_mem.sh" > /etc/cron.d/7dtd-check_mem
    181 
    182         echo -e "\nNOTE: Do not forget to edit /etc/7dtd.conf to match\nyour notification needs!"
     152       
     153        cat /etc/cron.d/7dtd-backup | tr -d '#' > /tmp/7dtd-backup
     154        cp /tmp/7dtd-backup /etc/cron.d
     155
    183156        echo -e "\n=============================================================\n\n"
    184157}
    185158
    186159finish() {
    187         echo -e "\n ALL DONE\n"
    188         echo -e "You should now be able to start your 7dtd server by running\n"
    189         echo -e "      7dtd-start.sh\n"
     160        if [ $ISDEBIAN -eq 0 ]; then
     161                echo
     162                echo "You are not running a Debian based distribution."
     163                echo "The following things should manually be checked:"
     164                echo " - Existence of prerequsities"
     165                echo " - Running the init-script on boot"
     166        else
     167                echo -e "\n ALL DONE"
     168        fi
     169
     170        echo
     171        echo -e "You can now continue setting up instances as explained on the website:"
     172        echo -e "  https://7dtd.illy.bz/wiki/Instance%20management"
    190173        echo
    191174        echo -e "For further configuration options check:"
    192175        echo -e "  /etc/7dtd.conf"
    193         echo -e "  /home/sdtd/serverconfig.xml"
    194         echo
    195         echo -e "For feedback, suggestions, problems please visit the forum:"
    196         echo -e "  http://7daystodie.com/forums/showthread.php?2188"
     176        echo
     177        echo -e "For feedback, suggestions, problems please visit the bugtracker:"
     178        echo -e "  https://7dtd.illy.bz/"
    197179        echo
    198180}
     
    202184        nonDebianWarning
    203185
    204         if [[ $ISDEBIAN == 1 ]]; then
     186        if [ $ISDEBIAN -eq 1 ]; then
    205187                installAptDeps
    206                 if [[ $INSTALLOPTIONALDEPS == 1 ]]; then
    207                         installOptionalDeps
     188                if [ $INSTALLOPTIONALDEPS -eq 1 ]; then
     189#                       installOptionalDeps
    208190                        echo
    209191                fi
     
    213195        setSteamLoginData
    214196        installSteamCmdAndSDTD
    215         if [[ $ADDCRONJOBS == 1 ]]; then
     197        if [ $ADDCRONJOBS -eq 1 ]; then
    216198                addCronJobs
    217199        fi
    218         setupServerConfig
    219200        finish
    220201}
    221202
    222 if [[ -z $1 ]]; then
     203if [ -z $1 ]; then
    223204        showHelp
    224205        exit 0
     
    241222        esac
    242223done
    243 if [[ $RUNINSTALL == 1 ]]; then
     224if [ $RUNINSTALL -eq 1 ]; then
    244225        main
    245226fi
  • /bundle_creation/makefile

    r20 r30  
    44ARCHIVE:
    55        @echo Creating archive...
    6         @tar -czf management_scripts.tar.gz etc home usr
     6        @tar -czf management_scripts_v`cat usr/local/lib/7dtd/VERSION | grep "version" | cut -d\  -f3`.tar.gz etc home usr
    77
    88CONTENTS: SCRIPTS SSD
     
    1313        @cp -r ../scripts/* .
    1414
    15 SSD: usr/local/bin/start-stop-daemon
    16 
    17 # start-stop-daemon:
    18 usr/local/bin/start-stop-daemon: ../tools/start-stop-daemon/start-stop-daemon.c
    19         @echo Compiling start-stop-daemon...
    20         @gcc -Wall -Wextra -Wno-return-type -Os -o $@ $<
     15SSD:
     16        @echo Copying start-stop-daemon source...
     17        @find ../tools -name "*~" -exec rm {} \;
     18        @cp -r ../tools/start-stop-daemon usr/local/lib/7dtd
    2119
    2220clean:
    2321        @echo Cleaning intermediate stuff...
    24         @find * -type d -exec rm -R {} \; 2>/dev/null
    25         @echo Ignore that error ;)
     22        -@find * -type d -exec rm -R {} \; 2>/dev/null
     23        @echo "Ignore that error ;)"
  • /scripts/etc/7dtd.conf

    r20 r30  
    11#!/bin/sh
    2 # Version 4
    32
    4 # Root directory where steamcmd should be placed
    5 export STEAMCMD_ROOT=/home/sdtd/steamcmd
     3# User login info for Steam to download/update the engine
    64export STEAM_USER=
    75export STEAM_PASS=
     
    2220export XMLSTARLET=/usr/bin/xmlstarlet
    2321export PKILL=/usr/bin/pkill
     22export SSD=/sbin/start-stop-daemon
    2423
  • /scripts/etc/init.d/7dtd.sh

    r20 r30  
    11#!/bin/sh
    2 # Version 4
    32
    43### BEGIN INIT INFO
  • /scripts/usr/local/bin/7dtd.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 4
    32
    43. /usr/local/lib/7dtd/common.sh
  • /scripts/usr/local/lib/7dtd/commands/backup.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43# Backups game data files.
     
    2423        touch $NewBackup
    2524
     25        for H in $(getHooksFor backup); do
     26                $H $NewBackup
     27        done
     28
    2629        #echo "Backup folder disk usage: `$DU -sh $SDTD_BACKUP_ROOT`"
    2730}
  • /scripts/usr/local/lib/7dtd/commands/instances.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43
     
    5251                        esac
    5352                done
    54         fi
    55         configEditAll
     53                echo
     54        fi
     55        configEditAll configQueryValue
    5656        echo
    5757        configSetAutoParameters "$INSTANCE"
     
    7575                return
    7676        fi
    77 
     77               
    7878        if [ $(isRunning "$1") -eq 0 ]; then
    7979                INSTANCE=$1
    8080                loadCurrentConfigValues "$1"
    81                 configEditAll
    82                 echo
    83                 configSetAutoParameters "$INSTANCE"
    84                 echo
    85                 echo "Saving"
    86                 saveCurrentConfigValues "$1"
    87                 echo "Done"
     81
     82                while : ; do
     83                        echo "What section of the config do you want to edit?"
     84                        local i=0
     85                        local sects=()
     86                        for S in $(listConfigEditFuncs); do
     87                                (( i++ ))
     88                                sects[$i]=$S
     89                                printf "  %2d: %s\n" $i "$S"
     90                        done
     91                        echo
     92                        echo "   W: Save and exit"
     93                        echo "   Q: Exit WITHOUT saving"
     94
     95                        local SEC
     96                        while : ; do
     97                                read -p "Section number: " SEC
     98                                SEC=$(lowercase $SEC)
     99                                if [ $(isANumber $SEC) -eq 1 ]; then
     100                                        if [ $SEC -ge 1 -a $SEC -le $i ]; then
     101                                                break
     102                                        fi
     103                                else
     104                                        if [ "$SEC" = "q" -o "$SEC" = "w" ]; then
     105                                                break
     106                                        fi
     107                                fi
     108                                echo "Not a valid section number!"
     109                        done
     110                        echo
     111                       
     112                        case "$SEC" in
     113                                q)
     114                                        echo "Not saving"
     115                                        break
     116                                        ;;
     117                                w)
     118                                        configSetAutoParameters "$INSTANCE"
     119                                        echo "Saving"
     120                                        saveCurrentConfigValues "$1"
     121                                        echo "Done"
     122                                        break
     123                                        ;;
     124                                *)
     125                                        configEdit${sects[$SEC]} configQueryValue
     126                                        echo
     127                        esac
     128                done
    88129        else
    89130                echo "Instance $1 is currently running. Please stop it first."
     
    120161}
    121162
     163sdtdSubcommandInstancesPrintConfig() {
     164        if [ $(isValidInstance "$1") -eq 0 ]; then
     165                echo "No instance given or not a valid instance!"
     166                return
     167        fi
     168               
     169        INSTANCE=$1
     170        loadCurrentConfigValues "$1"
     171
     172        configEditAll printConfigValue
     173}
     174
    122175sdtdCommandInstances() {
    123176        SUBCMD=$1
     
    136189                        sdtdSubcommandInstancesDelete "$@"
    137190                        ;;
     191                print_config)
     192                        sdtdSubcommandInstancesPrintConfig "$@"
     193                        ;;
    138194                *)
    139195                        sdtdCommandInstancesHelp
     
    162218        case $1 in
    163219                2)
    164                         echo "list create edit delete"
     220                        echo "list create edit delete print_config"
    165221                        ;;
    166222                3)
    167223                        case $2 in
    168                                 edit|delete)
     224                                edit|delete|print_config)
    169225                                        echo "$(getInstanceList)"
    170226                                        ;;
  • /scripts/usr/local/lib/7dtd/commands/start.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43# Tries to start the 7dtd instance.
     
    4039                OPTS="-quit -batchmode -nographics -configfile=$(getInstancePath $1)/config.xml -dedicated"
    4140               
    42                 start-stop-daemon --start $SSD_PID $SSD_DAEMON $SSD_USER --chdir $SDTD_BASE/engine --exec $WINE -- $SDTD_BASE/engine/7DaysToDie.exe $OPTS > $(getInstancePath $1)/stdout.log 2>&1
     41                $SSD --start $SSD_PID $SSD_DAEMON $SSD_USER --chdir $SDTD_BASE/engine --exec $WINE -- $SDTD_BASE/engine/7DaysToDie.exe $OPTS > $(getInstancePath $1)/stdout.log 2>&1
    4342                sleep 1
    4443
     
    5049                        SSD_MONITOR_PID="--pidfile $(getInstancePath $1)/monitor.pid --make-pidfile"
    5150                        SSD_MONITOR_DAEMON="--background"
    52                         start-stop-daemon --start $SSD_MONITOR_PID $SSD_MONITOR_DAEMON --exec "/usr/local/lib/7dtd/monitor-log.sh" -- "$1"
     51                        $SSD --start $SSD_MONITOR_PID $SSD_MONITOR_DAEMON --exec "/usr/local/lib/7dtd/monitor-log.sh" -- "$1"
    5352                        echo "Done!"
    5453                else
  • /scripts/usr/local/lib/7dtd/commands/status.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43# Print status of given instance.
  • /scripts/usr/local/lib/7dtd/commands/stop.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43# Tries to stop the 7dtd instance given as first parameter.
     
    4645                if [ $(isRunning $1) -eq 1 ]; then
    4746                        echo "Failed, force closing server..."
    48                         start-stop-daemon --stop --pidfile $(getInstancePath $1)/7dtd.pid
     47                        $SSD --stop --pidfile $(getInstancePath $1)/7dtd.pid
    4948                fi
    5049
  • /scripts/usr/local/lib/7dtd/commands/updateengine.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43# Tries to start the 7dtd instance.
     
    1312        done
    1413
    15         if [ ! -e $STEAMCMD_ROOT ]; then
    16                 mkdir $STEAMCMD_ROOT
     14        if [ ! -e $SDTD_BASE/steamcmd ]; then
     15                mkdir $SDTD_BASE/steamcmd
    1716                cd /tmp
    1817                wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
    19                 tar -xvzf steamcmd_linux.tar.gz -C $STEAMCMD_ROOT
    20                 cd $STEAMCMD_ROOT
     18                tar -xvzf steamcmd_linux.tar.gz -C $SDTD_BASE/steamcmd
     19                cd $SDTD_BASE/steamcmd
    2120                ./steamcmd.sh +quit
    2221        fi
    2322
    24         cd $STEAMCMD_ROOT
     23        cd $SDTD_BASE/steamcmd
    2524
    2625        ./steamcmd.sh +@sSteamCmdForcePlatformType windows +login $STEAM_USER $STEAM_PASS +force_install_dir $SDTD_BASE/engine "+app_update 251570" validate +quit
     
    3029        cp $SDTD_BASE/engine/Install/32bit/mono.dll $SDTD_BASE/engine/7DaysToDie_Data/Mono/
    3130        cp $SDTD_BASE/engine/Install/32bit/SteamworksManaged.dll $SDTD_BASE/engine/7DaysToDie_Data/Managed/
    32         cp $SDTD_BASE/msvcr100.dll $SDTD_BASE/engine/
    3331}
    3432
  • /scripts/usr/local/lib/7dtd/common.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43# Provides common functions for 7dtd-scripts. Not intended to be run directly.
     
    6261#   1 = running
    6362isRunning() {
    64         start-stop-daemon --status --pidfile $(getInstancePath $1)/7dtd.pid
     63        $SSD --status --pidfile $(getInstancePath $1)/7dtd.pid
    6564        if [ $? -eq 0 ]; then
    6665                echo 1
  • /scripts/usr/local/lib/7dtd/help.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43genericHelp() {
  • /scripts/usr/local/lib/7dtd/monitor-log.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43. /usr/local/lib/7dtd/common.sh
  • /scripts/usr/local/lib/7dtd/playerlog.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43timestamp() {
  • /scripts/usr/local/lib/7dtd/serverconfig.sh

    r20 r30  
    11#!/bin/bash
    2 # Version 5
    32
    43# Provides functions to query and validate values for serverconfig.xml
     4
     5#################################
     6## Definition of options
    57
    68serverconfig_ServerPort_QueryName() {
     
    684686
    685687
    686 ############
     688#################################
     689## Edit option functions
     690
     691configEditServer() {
     692        local CV
     693       
     694        echo "Server"
     695        echo "--------------------------------"
     696        for CV in \
     697                        ServerName ServerPassword ServerIsPublic ServerPort ServerMaxPlayerCount \
     698                        DisableNAT \
     699                        ; do
     700                $1 $CV
     701        done
     702        echo
     703}
     704
     705configEditRemoteControl() {
     706        local CV
     707       
     708        echo "Remote control"
     709        echo "--------------------------------"
     710        for CV in \
     711                        ControlPanelEnabled ControlPanelPort ControlPanelPassword \
     712                        TelnetPort TelnetPassword \
     713                        ; do
     714                if [ "$CV" = "TelnetPort" ]; then
     715                        echo
     716                        echo "NOTE: Telnet will always be enabled for management purposes!"
     717                        echo "Make sure you block external access to this port!"
     718                        echo
     719                fi
     720                $1 $CV
     721        done
     722        echo
     723}
     724
     725configEditGameType() {
     726        local CV
     727       
     728        echo "Game type"
     729        echo "--------------------------------"
     730        for CV in \
     731                        GameName GameWorld GameMode \
     732                        ; do
     733                $1 $CV
     734        done
     735        echo
     736}
     737
     738configEditGameTypeSpecific() {
     739        local CV
     740       
     741        echo "Options for specific game types"
     742        echo "--------------------------------"
     743        for CV in \
     744                        DayCount FragLimit MatchLength RebuildMap \
     745                        ; do
     746                $1 $CV
     747        done
     748        echo
     749}
     750
     751configEditGeneric() {
     752        local CV
     753       
     754        echo "Generic options"
     755        echo "--------------------------------"
     756        for CV in \
     757                        ShowAllPlayersOnMap FriendlyFire BuildCreate \
     758                        BlockDurabilityModifier \
     759                        ; do
     760                $1 $CV
     761        done
     762        echo
     763}
     764
     765configEditDropLoot() {
     766        local CV
     767       
     768        echo "Drop and Loot"
     769        echo "--------------------------------"
     770        for CV in \
     771                        DropOnDeath DropOnQuit \
     772                        LootAbundance LootRespawnDays AirDropFrequency \
     773                        ; do
     774                $1 $CV
     775        done
     776        echo
     777}
     778
     779configEditTimes() {
     780        local CV
     781       
     782        echo "Times / Durations"
     783        echo "--------------------------------"
     784        for CV in \
     785                        CraftTimer LootTimer \
     786                        DayNightLength NightPercentage \
     787                        ; do
     788                $1 $CV
     789        done
     790        echo
     791}
     792
     793configEditDifficulty() {
     794        local CV
     795       
     796        echo "Difficulty"
     797        echo "--------------------------------"
     798        for CV in \
     799                        GameDifficulty ZombiesRun \
     800                        PlayerDamageGiven PlayerDamageRecieved EnemySenseMemory EnemySpawnMode EnemyDifficulty \
     801                        ; do
     802                $1 $CV
     803        done
     804        echo
     805}
     806
     807configEditLandClaim() {
     808        local CV
     809       
     810        echo "Land claim options"
     811        echo "--------------------------------"
     812        for CV in \
     813                        LandClaimSize LandClaimDeadZone LandClaimExpiryTime LandClaimDecayMode \
     814                        LandClaimOnlineDurabilityModifier LandClaimOfflineDurabilityModifier \
     815                        ; do
     816                $1 $CV
     817        done
     818        echo
     819}
     820
     821configEditAll() {
     822        configEditServer "$1"
     823        configEditRemoteControl "$1"
     824        configEditGameType "$1"
     825        configEditGameTypeSpecific "$1"
     826        configEditGeneric "$1"
     827        configEditDropLoot "$1"
     828        configEditTimes "$1"
     829        configEditDifficulty "$1"
     830        configEditLandClaim "$1"
     831}
     832
     833
     834
     835
     836
     837#################################
     838## Generic worker functions
     839
     840
     841# List all defined config editing parts
     842# Returns:
     843#   List of config funcs
     844listConfigEditFuncs() {
     845        local CV
     846        for CV in $(declare -F | cut -d\  -f3 | grep "^configEdit.*$"); do
     847                CV=${CV#configEdit}
     848                printf "%s " "$CV"
     849        done
     850}
     851
     852
     853# List all defined config options
     854# Returns:
     855#   List of defined config options
    687856listConfigValues() {
    688857        local CV
     
    695864
    696865
    697 #  1: Option name
    698 #  2: Value
     866# Validate the given value for the given option
     867# Params:
     868#   1: Option name
     869#   2: Value
     870# Returns:
     871#   0/1: invalid/valid
    699872isValidOptionValue() {
    700873        local TYPE=$(serverconfig_$1_Type)
     
    747920}
    748921
    749 #  1: Option name
    750 #  2: Target variable
     922# Query for the value of a single config option
     923# Will be stored in $configCurrent_$1
     924# Params:
     925#   1: Option name
    751926configQueryValue() {
    752927        local TYPE=$(serverconfig_$1_Type)
     
    806981        fi
    807982        prompt=$(printf "%s:" "$prompt")
    808         prompt=$(printf "%-*s " 35 "$prompt")
     983        prompt=$(printf "%-*s " 40 "$prompt")
    809984
    810985        while : ; do
     
    822997                export $currentValName="${config_allowed_values[$currentValName-1]}"
    823998        fi
    824 }
    825 
     999        echo
     1000}
     1001
     1002# Set parameters for current instance that have forced values:
     1003#  - TelnetEnabled must be set so that management scripts can work
     1004#  - AdminFileName is made to point to the local instance admins.xml
     1005#  - SaveGameFolder is made to point to the instance folder
     1006# Params:
    8261007#   1: Instance name
    8271008configSetAutoParameters() {
     
    8311012}
    8321013
    833 configEditAll() {
    834         local CV
    835         for CV in \
    836                         ServerName ServerPort ServerIsPublic ServerPassword ServerMaxPlayerCount \
    837                         DisableNAT \
    838                         ControlPanelEnabled ControlPanelPort ControlPanelPassword \
    839                         TelnetPort TelnetPassword \
    840                         GameWorld GameName GameMode \
    841                         ShowAllPlayersOnMap FriendlyFire BuildCreate \
    842                         DayCount FragLimit MatchLength RebuildMap \
    843                         DropOnDeath DropOnQuit \
    844                         LootAbundance LootRespawnDays AirDropFrequency \
    845                         CraftTimer LootTimer \
    846                         DayNightLength NightPercentage \
    847                         GameDifficulty ZombiesRun \
    848                         PlayerDamageGiven PlayerDamageRecieved EnemySenseMemory EnemySpawnMode EnemyDifficulty \
    849                         BlockDurabilityModifier \
    850                         LandClaimSize LandClaimDeadZone LandClaimExpiryTime LandClaimDecayMode \
    851                         LandClaimOnlineDurabilityModifier LandClaimOfflineDurabilityModifier \
    852                         ; do
    853                 configQueryValue $CV
    854                 echo
    855         done
    856 }
    857 
    858 printCurrentConfig() {
    859         local CV
    860         for CV in $(listConfigValues); do
    861                 local currentValName=configCurrent_$CV
    862                 printf "%-20s = %s\n" "$CV" "${!currentValName}"
    863         done
    864 }
    865 
     1014
     1015# Print defined config value
     1016# Params:
     1017#   1: Config option
     1018printConfigValue() {
     1019        local currentValName=configCurrent_$1
     1020        printf "%-25s = %s\n" "$(serverconfig_$1_QueryName)" "${!currentValName}"
     1021}
     1022
     1023# Query for an instance name (will be saved in $INSTANCE)
    8661024readInstanceName() {
    8671025        until [ $(isValidInstanceName "$INSTANCE") -eq 1 ]; do
     
    8771035}
    8781036
     1037# Undefine the current config values
    8791038unsetAllConfigValues() {
    8801039        local CV
     
    8851044}
    8861045
     1046# Load all config values from the config.xml of the given instance
     1047# Params:
    8871048#   1: Instance name
    8881049loadCurrentConfigValues() {
     
    8991060}
    9001061
     1062# Save all config values to the config.xml of the given instance
     1063# Params:
    9011064#   1: Instance name
    9021065saveCurrentConfigValues() {
     
    9231086}
    9241087
     1088# Check if the config template exists
     1089# Returns:
     1090#   0/1: no/yes
    9251091configTemplateExists() {
    9261092        if [ -f $SDTD_BASE/templates/config.xml ]; then
  • /tools/start-stop-daemon/makefile

    r20 r30  
    22        gcc -Wall -Wextra -Wno-return-type -o $@ $<
    33
     4install: start-stop-daemon
     5        chown root.root start-stop-daemon
     6        chmod 0755 start-stop-daemon
     7
    48clean:
    59        rm start-stop-daemon
Note: See TracChangeset for help on using the changeset viewer.