diff options
author | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
commit | ab8cc85adde879fb963c94d15675783f2cf4b183 (patch) | |
tree | c202482327f474583b750b2c45dedfc4e4312b1d /src/scripts/axiom.in | |
download | open-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz |
Initial population.
Diffstat (limited to 'src/scripts/axiom.in')
-rw-r--r-- | src/scripts/axiom.in | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/src/scripts/axiom.in b/src/scripts/axiom.in new file mode 100644 index 00000000..3b1b7c3c --- /dev/null +++ b/src/scripts/axiom.in @@ -0,0 +1,215 @@ +#!/bin/sh + +# 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 +# +# + +## Where The Axiom system resides +prefix=@prefix@ +exec_prefix=@exec_prefix@ +AXIOM=@libdir@/axiom/target/@target@ +export AXIOM + +## We adjust the value of PATH here because, currently, some Axiom +## programs are called from the executing shell, and relying on the +## fact that the executables are reachable from the PATH. +PATH=$AXIOM/bin:$PATH + +## If the system is built without Superman support, there is +## no point in trying to forcefully use Superman +use_sman=@axiom_use_sman@ + + +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 + +if [ "$SPAD" = "" ] ; then + if [ "$AXIOM" = "" ] ; then + echo "AXIOM variable is not set" + exit 1 + 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 + +if [ $use_sman = "yes" ]; then + exec $SPAD/bin/sman $otheropts -ws $serverws +else + exec $serverws +fi |