/usr/share/pennmush/game/restart is in pennmush-common 1.8.2p8-1.1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | #!/bin/sh
#
# usage: restart
#
# REQUIRED: You must set this to the path to your game directory.
# E.g.: /home/mush/game
GAMEDIR=
# 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"
LC_ALL=$LANG LANG=$LANG ./netmush $GAMEDIR/$CONF_FILE &
|