#!/bin/ksh

FILES=""
MLEVEL="0"
LMODE="async"

function usage {
    print "usage: dotty [-V] [-lm (sync|async)] [-el (0|1)] <filename>"
}

function processoptions {
    while [[ $# > 0 ]] do
        case $1 in
        -V)
            print "dotty version 96c (09-24-96)"
            shift
            ;;
        -f)
            shift
            loadfile=$1
            shift
            ;;
        -lm)
            shift
            LMODE=$1
            if [[ $LMODE != 'sync' && $LMODE != 'async' ]] then
                usage
                exit 1
            fi
            shift
            ;;
        -el)
            shift
            MLEVEL=$1
            if [[ $MLEVEL != '0' && $MLEVEL != '1' ]] then
                usage
                exit 1
            fi
            shift
            ;;
        -)
            FILES="$(print $FILES "'"$1"'")"
            shift
            ;;
        -*)
            usage
            exit 1
            ;;
        *)
            FILES="$(print $FILES "'"$1"'")"
            shift
            ;;
        esac
    done
}

if [[ $DOTTYOPTIONS != '' ]] then
    processoptions $DOTTYOPTIONS
fi
processoptions "$@"

if [[ $DOTTYPATH != '' ]] then
    LEFTYPATH="$DOTTYPATH:$LEFTYPATH"
fi

CMDS=""

CMDS="dotty.protogt.layoutmode = '$LMODE';"

CMDS="$(print $CMDS dotty.mlevel = $MLEVEL";")"

if [[ $loadfile != '' ]] then
    CMDS="$(print $CMDS load \("'"$loadfile"'"\)";")"
fi

if [[ $FILES = '' ]] then
    FILES=null
fi
FUNC="dotty.createviewandgraph"
for i in $FILES; do
    CMDS="$(print $CMDS $FUNC \($i, "'"file"'", null, null\)";")"
done

leftypath=$(whence -p lefty)
if [[ $leftypath == '' ]] then
    print -u2 "dotty: cannot locate the lefty program"
    print -u2 "       make sure that your path includes"
    print -u2 "       the directory containing dotty and lefty"
    exit 1
fi

$leftypath -e "
load ('dotty.lefty');
checkpath = function () {
    if (tablesize (dotty) > 0)
        remove ('checkpath');
    else {
        echo ('dotty: cannot locate the dotty scripts');
        echo ('       make sure that the environment variable LEFTYPATH');
        echo ('       is set to the directory containing dotty.lefty');
        exit ();
    }
};
checkpath ();
dotty.init ();
monitorfile = dotty.monitorfile;
$CMDS
txtview ('off');
"
