-
Property svn:ignore set to
#!/bin/sh # # usage: restart # # REQUIRED: You must set this to the path to your game directory. # E.g.: /home/mush/game GAMEDIR=/Users/shawnw/src/penn/1.8.3/devel/game/
# OPTIONAL things that you may want to tweak.
# Uncomment the line below to attempt to allow crashes to produce # core dumps. If you're getting crashes, this is the best way # to debug them. #ulimit -c unlimited
# Internationalization stuff # Set LANG here to get international character sets and, if someone's # done it, translation of messages. # Vaild locales are usually <lang_code>_<COUNTRY CODE> # Example (uncomment to use): #LANG=fr_FR
# Time zone stuff # If you want your MUSH to run in a different timezone than the one # you're in, you need to identify the target time zone file in # /usr/share/zoneinfo or /usr/lib/zoneinfo. Then uncomment the next # two lines and set TZ to the desired timezone file, as shown, with # an initial colon: #TZ=:EST5EDT #export TZ
# The config file. Best to keep this as is. If you must change # the name, make it a link to mush.cnf. CONF_FILE=mush.cnf
#######################################################################
if [ -z "$GAMEDIR" ]; then echo "You must set GAMEDIR in the restart script." exit 1 fi
if [ ! -d "$GAMEDIR" ]; then echo "GAMEDIR doesn't appear to be a directory. It's: $GAMEDIR" exit 1 fi
cd $GAMEDIR echo Running from `pwd`
if [ ! -f "$CONF_FILE" ]; then echo "CONF_FILE doesn't exist. It's: $CONF_FILE" echo "Create $CONF_FILE from $GAMEDIR/mushcnf.dst and run 'make update'" exit 1 fi
# If netmush isn't here, they probably didn't make install # In any case, we'd better not proceed. if [ ! -e netmush ]; then echo "I don't see $GAMEDIR/netmush. Did you remember to make install?" exit 1 fi
# # Read the cnf file and set some variables. # INDB=`egrep "^input_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'` OUTDB=`egrep "^output_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'` PANICDB=`egrep "^crash_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'` PANICDIR=`egrep "^crash_database" $CONF_FILE | sed "s/.*[ ][ ]*\(.*\)\/.*/\1/" | sed 's/\r$//'` COMPRESSOR="cat" SUFFIX=""
# Find out what the compression program is, if any egrep -s "^compress_program[ ]*[A-Za-z0-9]" $CONF_FILE nocompress=$? if [ "$nocompress" -eq 0 ]; then COMPRESSOR=`egrep "^compress_program" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'` SUFFIX=`egrep "^compress_suffix" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'` fi
#-- start up everything
# Prevent double-starting things. You may need to provide a pathname for # some of the commands. System V flavors need "ps -f" instead of "ps uwx". mush=`ps uwwx | grep " $GAMEDIR/$CONF_FILE" | grep -v grep | wc -l`
if [ "$mush" -gt 0 ]; then echo Mush already active or some other process is using $GAMEDIR/$CONF_FILE. exit 0 fi
echo Building text file indexes. (cd txt; make)
echo Restarting Mush.
if [ -r "$PANICDIR/$PANICDB" ]; then end="`tail -1 $PANICDIR/$PANICDB`" if [ "$end" = "***END OF DUMP***" ]; then echo "Recovering PANIC dump." cat $PANICDIR/$PANICDB | $COMPRESSOR > data/$OUTDB$SUFFIX rm $PANICDIR/$PANICDB echo "PANIC dump successfully recovered." else mv $PANICDIR/$PANICDB save/$PANICDB.corrupt echo "Warning: PANIC dump corrupt. Using older db." fi fi
# Copy the last set of log files to save/ mv -f log/*.log save/
if [ -r "data/$OUTDB$SUFFIX" ]; then rm -f save/$INDB$SUFFIX.old mv -f data/$INDB$SUFFIX save/$INDB$SUFFIX.old mv data/$OUTDB$SUFFIX data/$INDB$SUFFIX else echo "No $OUTDB$SUFFIX found." if [ -r "data/$INDB$SUFFIX" ]; then echo "Using $INDB$SUFFIX." else echo "No $INDB$SUFFIX found." if [ -r "save/$INDB$SUFFIX.old" ]; then echo "Using save/$INDB$SUFFIX.old." cp save/$INDB$SUFFIX.old data/$INDB$SUFFIX else echo "No database found. Mush will start with a minimal world." fi fi fi
if [ -r reboot.db ]; then rm -f reboot.db fi
DATEMSK="${GAMEDIR}/getdate.template" export DATEMSK
LC_ALL=$LANG LANG=$LANG ./netmush $GAMEDIR/$CONF_FILE &
|