#!/bin/sh export AXIOM=/usr/lib/axiom/mnt/linux export PATH=$PATH:$AXIOM/bin # Start everything for Axiom. # # axiom # [-ht |-noht] whether to use HyperDoc # [-gr |-nogr] whether to use Graphics # [-clef |-noclef] whether to use Clef # [-nag |-nonag] whether to use NAG # [-iw |-noiw] start in interpreter window # [-ihere|-noihere] start an interpreter buffer in the original window # [-nox] don't use X Windows # [-go |-nogo] whether to start system # [-ws wsname] use named workspace # [-list] list workspaces only # [-grprog fname] use named program for Graphics # [-nagprog fname] use named program for Nag # [-htprog fname] use named program for HyperDoc # [-clefprog fname] use named program for Clef # [-sessionprog fname] use named program for session # [-clientprog fname] use named program for spadclient # [-h] show usage # # MALLOCTYPE=3.1 export MALLOCTYPE # NAGMAN needs to know the hostname HOST=`hostname` export HOST # 0. Basic utilities ciao() { echo "Goodbye." exit 1 } needsubopt () { echo "The $1 option requires an argument." ciao } showuse() { echo "axiom" echo " [-ht |-noht] whether to use HyperDoc" echo " [-gr |-nogr] whether to use Graphics" echo " [-clef |-noclef] whether to use Clef" echo " [-nag |-nonag] whether to use NAG" echo " [-iw |-noiw] start in interpreter window" echo " [-ihere|-noihere] start an interpreter buffer in the original window." echo " [-nox] don't use X Windows" echo " [-go |-nogo] whether to start system" echo " [-ws wsname] use named workspace" echo " [-list] list workspaces only" #echo " [-grprog fname] use named program for Graphics" #echo " [-nagprog fname] use named program for Nag" #echo " [-htprog fname] use named program for HyperDoc" #echo " [-clefprog fname] use named program for Clef" #echo " [-sessionprog fname] use named program for session" #echo " [-clientprog fname] use named program for spadclient" echo " [-h] show usage" } # 1. Ensure the environment is set. # Just process '-h' if [ "$*" = "-h" ] ; then showuse fi SPADDEFAULT=/axiom/mnt/linux if [ "$SPAD" = "" ] ; then if [ "$AXIOM" = "" ] ; then SPAD=$SPADDEFAULT echo "AXIOM variable is not set" echo "assuming AXIOM = /axiom/mnt/linuxglibc" AXIOM=$SPAD export AXIOM else SPAD=$AXIOM fi export SPAD else if [ "$AXIOM" = "" ] ; then echo "AXIOM variable is not set" echo "but SPAD = $SPAD" echo "Using AXIOM = $SPAD" AXIOM=$SPAD export AXIOM else if [ ! "$SPAD" = "$AXIOM" ] ; then echo "ignoring SPAD variable" SPAD=$AXIOM fi fi fi if [ "$AXIOMXLROOT" = "" ] ; then AXIOMXLROOT=${AXIOM}/compiler fi export AXIOMXLROOT PATH=$AXIOMXLROOT/bin:${PATH} export PATH if [ ! -d "$SPAD" ] ; then echo "The directory for Axiom, $SPAD, does not exist." ciao fi # Name the workspace directories. rootwsdir=$SPAD/bin # 2. Process command line arguments. # Defaults for command-line arguments. list=no go=yes wsname=AXIOMsys otheropts="" while [ "$*" != "" ] ; do case $1 in -list) list=yes go=no;; -go) go=yes ;; -nogo) go=no ;; -ws) if [ "$2" = "" ] ; then needsubopt "$1" ; fi shift wsname="$1" ;; -nagprog|-grprog|-htprog|-clefprog|-sessionprog|-clientprog|-paste|-rm|-rv) if [ "$2" = "" ] ; then needsubopt "$1" ; fi otheropts="$otheropts $1 $2" shift ;; -clef|-noclef|-gr|-nogr|-ht|-noht|-iw|-noiw|-ihere|-noihere|-nox|-nag|-nonag) otheropts="$otheropts $1" ;; -h) go=no ;; *) echo "Unknown option: $1" echo "To use a specific workspace use, e.g.: spad -ws $1" ciao ;; esac shift done # 3. List the available workspaces, if asked listwspaces() { echo "$1" ls -l $2 | grep "sys$" echo "" } if [ $list = yes ] ; then listwspaces "AXIOM workspaces in \$AXIOM/bin = $rootwsdir: " $rootwsdir fi # 5. Try to ensure a suitable workspace on this host. if [ `expr $wsname : '.*/.*'` = 0 ] ; then serverws=$rootwsdir/$wsname else serverws=$wsname fi if [ ! -f $serverws ] ; then showuse ciao fi # 6. Start processes if [ $go = no ] ; then echo "Would now start the processes." echo exec $SPAD/bin/sman $otheropts -ws $serverws exit 0 fi exec $SPAD/bin/sman $otheropts -ws $serverws