#!/bin/bash
#
# $Id$
#
# Never call this script directly, create a symlink to this file with the 
# name of the door. For example to run the door ilord do:
#   cd /opt/mbse/bin
#   ln -s rundoor.sh ilord
#
# In the bbs menu use the following line for Opt. Data:
#   /opt/mbse/bin/ilord /N [novirtual]
#
# The optional "novirtual" second paramter disables the use of the virtual
# comport in dosemu, this is for dos programs that are not doors.
#
# This is for dosemu 1.2.0 and later and runs the door as user.
#
# by Redy Rodriguez and Michiel Broek.

DOOR=`basename $0`
COMMANDO="\"doors $DOOR $*\r\""
DOSDRIVE=${MBSE_ROOT}/var/dosemu/c

# Prepare users home directory and node directory
if [ "$1" != "" ]; then
    mkdir -p $DOSDRIVE/doors/node$1 >/dev/null 2>&1
    # Copy door*.sys to dos partition
    cat ~/door.sys >$DOSDRIVE/doors/node$1/door.sys
    cat ~/door32.sys >$DOSDRIVE/doors/node$1/door32.sys
    # Create .dosemu directory for the user.
    if [ ! -d $HOME/.dosemu ]; then
	mkdir $HOME/.dosemu
    fi
    # Looks cheap, see above, but this does an upgrade too
    if [ ! -d $HOME/.dosemu/drives ]; then
        mkdir $HOME/.dosemu/drives
    fi
    # Create .dosemu/disclaimer in user home to avoid warning
    if [ ! -f $HOME/.dosemu/disclaimer ]; then
        touch $HOME/.dosemu/disclaimer
    fi
else
    exit 1    
fi

# run the dos emulator with the door.
if [ "$2" == "novirtual" ]; then
    /usr/bin/dosemu.bin -f ${MBSE_ROOT}/etc/dosemu/dosemu.conf -I "`echo -e keystroke $COMMANDO`"
else
    /usr/bin/dosemu.bin -f ${MBSE_ROOT}/etc/dosemu/virtual.conf -I "`echo -e keystroke $COMMANDO`"
fi