b1fca01996-11-12Per Hedbor #!/bin/sh
82f5191997-03-02Per Hedbor VERSION=201; BETA=.a;
b1fca01996-11-12Per Hedbor  # Can be set with '--config-dir=DIR' DIR=../configurations/ LOGDIR=../logs/ FILES="default" rotate () { b=5; for a in 4 3 2 1 ; do mv -f $1.$a $1.$b 2> /dev/null; b=$a; done }
4019f81997-03-01Per Hedbor  start_roxen() {
82f5191997-03-02Per Hedbor  PIKE=pike if [ -x bin/pike ] ; then PIKE=bin/pike; fi export PIKE args="-DROXEN $DEFINES $DEBUG base_server/roxenloader.pike --config-dir=$DIR" tput 'bold' 2>/dev/null echo $$: Executing $PIKE $args $@ tput 'rmso' 2>/dev/null $PIKE $args $@
4019f81997-03-01Per Hedbor }
b1fca01996-11-12Per Hedbor  ## Parse all arguments.
82f5191997-03-02Per Hedbor ## GNU-style, long options only, except for -D, simply passed on. parse_args() { while [ ! c"$1" = "c" ] ; do
b1fca01996-11-12Per Hedbor  case $1 in
4019f81997-03-01Per Hedbor  -D*) DEFINES="$DEFINES $1" ;;
82f5191997-03-02Per Hedbor # Used by the 'install' script
b1fca01996-11-12Per Hedbor  --log-dir=*) LOGDIR=`echo $1 | sed -e 's/--log-dir=//'` ;; --config-dir=*) DIR=`echo $1 | sed -e 's/--config-dir=//'`
82f5191997-03-02Per Hedbor  FILES=`echo $1 | sed -e's/--config-dir=//' -e's/.//g' -e's./..g' -e 's.-..g'`
b1fca01996-11-12Per Hedbor  ;;
59f64b1997-01-27Per Hedbor  '--debug') debug=1 ;;
a8135b1996-11-12Per Hedbor  '--once') once=1 ;;
b1fca01996-11-12Per Hedbor  '--version')
82f5191997-03-02Per Hedbor  echo 1.`expr $VERSION / 100`$BETA`expr $VERSION % 100`
b1fca01996-11-12Per Hedbor  exit 0 ;; '--help'|'-?')
82f5191997-03-02Per Hedbor  tput 'bold' 2>/dev/null cat << EOF Syntax: $0 [--version] [--config-dir=DIR] [--log-dir=DIR] [-DDEFINE] This command will start the Roxen server. If the configuration dir is set, a different set of debuglogfiles will be used. The environment variable ROXEN_ARGS can be used to specify the default arguments. EOF tput 'rmso' 2>/dev/null
b1fca01996-11-12Per Hedbor  exit 0 ;; *) pass="$pass $1" esac shift
82f5191997-03-02Per Hedbor  done } ####### END PREAMBLE parse_args $@
b1fca01996-11-12Per Hedbor 
82f5191997-03-02Per Hedbor if [ ! "X$ROXEN_ARGS" = "X" ]; then echo $$: Using $ROXEN_ARGS from ROXEN_ARGS. parse_args $ROXEN_ARGS fi if [ ! "X$pass" = "X" ] ; then set $pass ;fi
b1fca01996-11-12Per Hedbor 
82f5191997-03-02Per Hedbor tput 'clear' 2>/dev/null tput 'bold' 2>/dev/null echo $$: Starting the Roxen Challenger World Wide Web server.
b1fca01996-11-12Per Hedbor  ./mkdir -p $LOGDIR/debug/
59f64b1997-01-27Per Hedbor if [ -z "$debug" ] ; then DEBUG=""; else DEBUG="-DDEBUG -DMODULE_DEBUG" fi
a8135b1996-11-12Per Hedbor if [ -z "$once" ] ; then (while : ; do sdfile="/tmp/Roxen_Shutdown_$$" rm $sdfile if [ -f "$sdfile" ] ; then cat << oo
82f5191997-03-02Per Hedbor WARNING:
b1fca01996-11-12Per Hedbor A shutdown file '('$sdfile')' is present, and the file cannot be removed by this script. Please remove this file, or you might be unable to shut down Roxen in the future. The file: oo
82f5191997-03-02Per Hedbor  ls -l $sdfile
b1fca01996-11-12Per Hedbor  noshutdown="yes" else noshutdown="" fi
82f5191997-03-02Per Hedbor  echo $$: "Server restart at `date`"
b1fca01996-11-12Per Hedbor  rotate $LOGDIR/debug/$FILES
82f5191997-03-02Per Hedbor 
4019f81997-03-01Per Hedbor  start_roxen
82f5191997-03-02Per Hedbor 
b1fca01996-11-12Per Hedbor  if [ -z "$noshutdown" ] ; then if [ -f "$sdfile" ] ; then # A shutdown file. This is only done if Roxen cannot kill this script # for some reason, the most common beeing the lack of a seteuid() # function, in which case Roxen will write this file. # # The contents of the file is the actual PID Roxen got when it was # started. This could be used to verify that this was the correct # shutdown file, but since it is extremely unlikely that two # start-scripts get the same PID, this is not done.
82f5191997-03-02Per Hedbor  echo $$: Server shutdown file detected. Shutting down
b1fca01996-11-12Per Hedbor  rm "$sdfile" if [ -f "$sdfile" ] ; then
82f5191997-03-02Per Hedbor  echo $$: "Failed to remove '"$sdfile"'. This could be a problem"
b1fca01996-11-12Per Hedbor  exit 0 else exit 0 fi fi fi done
82f5191997-03-02Per Hedbor echo $$: Not Reached "(famous last words)"
b1fca01996-11-12Per Hedbor  ) < /dev/null > $LOGDIR/debug/start_$FILES.output 2>&1& cat << oo Using configuration from $DIR, storing the debug log in $LOGDIR/debug/$FILES.1 You can use the configuration interface in the server to get debug info. oo
82f5191997-03-02Per Hedbor tput 'rmso' 2>/dev/null
a8135b1996-11-12Per Hedbor else
82f5191997-03-02Per Hedbor  echo $$: "Server restart at `date`"
4019f81997-03-01Per Hedbor  start_roxen
a8135b1996-11-12Per Hedbor fi