#! /bin/bash
#
# Component:   apl2run
#
# Function:    Initial Startup Shell for APL2 Runtime on Linux
#
# Copyright:   Workstation APL2   Version 2.0
#              Licensed Materials - Property of IBM
#              (c) Copyright IBM Corp. 2002
#              All Rights Reserved.
#
#              US Government Users Restricted Rights -
#              Use, duplication or disclosure restricted by
#              GSA ADP Schedule Contract with IBM Corp.
#

APL2=/usr/APL2
HOSTWIN=xterm
APL2ICON="-xrm APL2win*iconPixmap:$APL2/defaults/icon.APL2win"
SVPTICON="-xrm APL2win*iconPixmap:$APL2/defaults/icon.SVPmon"

USAGE="usage: apl2run [optional parms]\n
optional parms:\n
  [-207fl path]\t\t path to AP 207 vector fonts\n
  [-display name]\t sets DISPLAY environment variable for X-server\n
  [-hostwin on | off | icon]\t open X window for )EDITOR and )HOST commands\n
  [-id procid[,parentid[,pparentid]]]\t SVP processor identification\n
  [-input \" 'line1' 'line2'..\"]\t lines stacked for initial execution\n
  [-lx on | off]\t\t execute latent expression on )LOAD\n
  [-nlt file]\t\t national language command and message translation file\n
  [-p11 file]\t\t Processor 11 NAMES file(s)\n
  [-prof file]\t\t APL2 session X-resource profile (sets XENVIRONMENT)\n
  [-prtg file]\t\t Print shell file for AP 207 screen print\n
  [-quiet on | off]\t suppress display of output until first input\n
  [-rns function:locator]\t run niladic function in namespace\n
  [-sm off | piped | #]\t session manager (# = remote processor id)\n
  [-svptrace on | off | log]\t SVP tracing (on = window, log = file)\n
  [-ws initial[,maximum[,increment]]]\t workspace size values: #[k|m]\n"

EUSAGE=1
APLPARMS=''

while test -n "$1"
do
  case $1 in
    -display)   shift; DISPLAY=$1; export DISPLAY;;
    -hostwin)   shift; APLHOSTWIN=$1;;
    -input)     shift; APLINPUT="$1";;
    -nlt)       shift; APLNLT=$1;;
    -prof)      shift; XENVIRONMENT=$1; export XENVIRONMENT;;
    -sm)        shift; APLSM=$1;;
    -svptrace)  shift; APLSVPTRACE=$1;;
    "?")        echo -e $USAGE 1>&2; exit $EUSAGE ;;
    *)          APLPARMS=$APLPARMS" $1 ";;
  esac
  shift
done

  case $LANG in
    En_US | Gr_GR | En_UK | It_IT | Fr_FR | C)
       APLLANG=$LANG;;
    american | american.iso88591 | iso8859 | en_US )
       APLLANG=En_US;;
    german   | german.iso88591   | de_DE   | De_DE | de_DE@euro )
       APLLANG=Gr_GR;;
    english  | english.iso88591  | en_GB   | En_GB )
       APLLANG=En_UK;;
    italian  | italian.iso88591  | it_IT )
       APLLANG=It_IT;;
    french   | french.iso88591   | fr_FR )
       APLLANG=Fr_FR;;
    *) APLLANG=C;;
  esac

APLSM=${APLSM:=off}                              # Session Manager
APLHOSTWIN=${APLHOSTWIN:=icon}                   # )HOST X window
APLNLT=${APLNLT:=$APL2/nls/$APLLANG/cmd_msg.txt} # NLS message translations
APL2SVPPARMS=${APL2SVPPARMS:=$APL2/defaults/apl2svp.prm} # SVP parms
APLSVPTRACE=${APLSVPTRACE:=off}                  # SVP Tracing
XAPPLRESDIR=$APL2/nls/$APLLANG/                  # X application resources
XKEYSYMDB=$APL2/defaults/XKeysymDB               # X key symbols

PATH=$PATH:$APL2/bin
CLASSPATH=$CLASSPATH:$APL2/bin/apl2.jar
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$APL2/lib

# Export APL2 related environment variables
export APL2 APLSM APLNLT APLINPUT APL2SVPPARMS XAPPLRESDIR
export APLHOSTWIN APLSVPTRACE XKEYSYMDB
export PATH CLASSPATH LD_LIBRARY_PATH

APLSVPWIN=${APLSVPWIN:=no}
if [ "$APLSVPTRACE" = "on" ] && [ "$APLSVPWIN" = "no" ]
then
 # Start SVP Trace Monitor
 APL2SVPLOG=${APL2SVPLOG:=$HOME/apl2svp.trc}      # SVP trace to named pipe
 export APL2SVPLOG
 rm -f $APL2SVPLOG
 /bin/mknod $APL2SVPLOG p
 $HOSTWIN $SVPTICON -name APL2win -n SVPmon -T "APL2 Shared Variable Processor Trace" -e cat $APL2SVPLOG &
 APLSVPWIN=yes
fi
export APLSVPWIN

if [ "$APLSM" != "piped" ] && [ "$APLHOSTWIN" != "off" ]
 then
  if [ "$APLHOSTWIN" = "on" ]
   then
    # 'Open an X window for )EDITOR and )HOST commands'
    $HOSTWIN $APL2ICON -name APL2win -e $APL2/bin/arunexe $APLPARMS &
   else
    # 'Start iconified an X window for )EDITOR and )HOST commands'
    $HOSTWIN $APL2ICON -name APL2win -iconic -e $APL2/bin/arunexe $APLPARMS &
   fi
 else
   $APL2/bin/arunexe $APLPARMS
fi

