aboutsummaryrefslogtreecommitdiffstats
path: root/slib.sh
diff options
context:
space:
mode:
authorSteve Langasek <vorlon@debian.org>2005-01-10 08:53:33 +0000
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:30 -0800
commite33f9eb9cf5cc29c36ce2aa7e10cd0f37ae0cc8e (patch)
treeabbf06041619e445f9d0b772b0d58132009d8234 /slib.sh
parentf559c149c83da84d0b1c285f0298c84aec564af9 (diff)
parent8466d8cfa486fb30d1755c4261b781135083787b (diff)
downloadslib-e33f9eb9cf5cc29c36ce2aa7e10cd0f37ae0cc8e.tar.gz
slib-e33f9eb9cf5cc29c36ce2aa7e10cd0f37ae0cc8e.zip
Import Debian changes 3a1-4.2debian/3a1-4.2
slib (3a1-4.2) unstable; urgency=low * Non-maintainer upload. * Add guile.init.local for use within the build dir, since otherwise we have an (earlier unnoticed) circular build-dep due to a difference between scm and guile. slib (3a1-4.1) unstable; urgency=low * Non-maintainer upload. * Build-depend on guile-1.6 instead of scm, since the new version of scm is wedged in unstable (closes: #281809). slib (3a1-4) unstable; urgency=low * Also check for expected creation on slibcat. (Closes: #240096) slib (3a1-3) unstable; urgency=low * Also check for /usr/share/guile/1.6/slib before installing for guile 1.6. (Closes: #239267) slib (3a1-2) unstable; urgency=low * Add format.scm back into slib until gnucash stops using it. * Call guile-1.6 new-catalog (Closes: #238231) slib (3a1-1) unstable; urgency=low * New upstream release * Remove Info section from doc-base file (Closes: #186950) * Remove period from end of description (linda, lintian) * html gen fixed upstream (Closes: #111778) slib (2d4-2) unstable; urgency=low * Fix url for upstream source (Closes: #144981) * Fix typo in slib.texi (enquque->enqueue) (Closes: #147475) * Add build depends. slib (2d4-1) unstable; urgency=low * New upstream. slib (2d3-1) unstable; urgency=low * New upstream. * Remove texi2html call in debian/rules. Now done upstream. Add make html instead. * Changes to rules and doc-base to conform to upstream html gen * Clean up upstream makefile to make sure it cleans up after itself.
Diffstat (limited to 'slib.sh')
-rwxr-xr-xslib.sh119
1 files changed, 119 insertions, 0 deletions
diff --git a/slib.sh b/slib.sh
new file mode 100755
index 0000000..e88a2bc
--- /dev/null
+++ b/slib.sh
@@ -0,0 +1,119 @@
+
+##"slib" script; Find a Scheme implementation and initialize SLIB in it.
+#Copyright (C) 2003 Aubrey Jaffer
+#
+#Permission to copy this software, to modify it, to redistribute it,
+#to distribute modified versions, and to use it for any purpose is
+#granted, subject to the following restrictions and understandings.
+#
+#1. Any copy made of this software must include this copyright notice
+#in full.
+#
+#2. I have made no warranty or representation that the operation of
+#this software will be error-free, and I am under no obligation to
+#provide any services, by way of maintenance, update, or otherwise.
+#
+#3. In conjunction with products arising from the use of this
+#material, there shall be no use of my name in any advertising,
+#promotional, or sales literature without prior written consent in
+#each case.
+
+usage="Usage: slib [--version | -v]
+
+ Display version information and exit successfully.
+
+Usage: slib SCHEME
+
+ Initialize SLIB in Scheme implementation SCHEME.
+
+Usage: slib
+
+ Initialize SLIB session using executable 'scheme', 'scm',
+ 'mzscheme', 'guile', 'gsi' or 'slib48'."
+
+case "$1" in
+ -v | --ver*) echo slib "$VERSION"; exit 0;;
+ "")
+ if type scheme>/dev/null 2>&1; then
+ command=scheme
+ fi;;
+ -*) echo "$usage"; exit 1;;
+ *)
+ command="$1"
+ shift
+esac
+# If more arguments are supplied, then err out.
+if [ ! -z "$1" ]; then
+ echo "$usage"; exit 1
+fi
+
+if type $command>/dev/null 2>&1; then
+ SPEW="`$command --version < /dev/null 2>&1`"
+ if echo ${SPEW} | grep -q 'Initialize load-path (colon-list of directories)' \
+ ; then implementation=elk
+ elif echo ${SPEW} | grep -q 'MIT Scheme' ; then implementation=mit
+ elif echo ${SPEW} | grep -q 'UMB Scheme' ; then implementation=umb
+ elif echo ${SPEW} | grep -q 'scheme48' ; then implementation=s48
+ elif echo ${SPEW} | grep -q 'MzScheme' ; then implementation=plt
+ elif echo ${SPEW} | grep -q 'Guile' ; then implementation=gui
+ elif echo ${SPEW} | grep -q 'gambc' ; then implementation=gam
+ elif echo ${SPEW} | grep -q 'SCM' ; then implementation=scm
+ else implementation=
+ fi
+elif [ ! -z "$command" ]; then
+ echo "Program '$command' not found."
+ exit 1
+fi
+
+if [ -z "$command" ];
+then
+ if type scm>/dev/null 2>&1; then
+ command=scm; implementation=scm
+ elif type gsi>/dev/null 2>&1; then
+ command=gsi; implementation=gam
+ elif type mzscheme>/dev/null 2>&1; then
+ command=mzscheme; implementation=plt
+ elif type guile>/dev/null 2>&1; then
+ command=guile; implementation=gui
+ elif type slib48>/dev/null 2>&1; then
+ command=slib48; implementation=s48
+ else
+ echo No Scheme implementation found.
+ exit 1
+ fi
+fi
+
+case $implementation in
+ scm);;
+ s48);;
+ *) if [ -z "${SCHEME_LIBRARY_PATH}" ]; then
+ export SCHEME_LIBRARY_PATH=`rpm -ql slib 2>/dev/null \
+ | grep require.scm | sed 's%require.scm%%'`
+ fi
+ if [ -z "${SCHEME_LIBRARY_PATH}" ]; then
+ if [ -d /usr/local/lib/slib/ ]; then
+ export SCHEME_LIBRARY_PATH=/usr/local/lib/slib/
+ elif [ -d /usr/share/slib/ ]; then
+ export SCHEME_LIBRARY_PATH=/usr/share/slib/
+ fi
+ fi;;
+esac
+
+# for gambit
+case $implementation in
+ gam) if [ -z "${LD_LIBRARY_PATH}" ]; then
+ export LD_LIBRARY_PATH=/usr/local/lib
+ fi;;
+esac
+
+case $implementation in
+ scm) exec $command -ip1 -l ${SCHEME_LIBRARY_PATH}scm.init $*;;
+ elk) exec $command -i -l ${SCHEME_LIBRARY_PATH}elk.init;;
+ gam) exec $command -:s ${SCHEME_LIBRARY_PATH}gambit.init - $*;;
+ plt) exec $command -f ${SCHEME_LIBRARY_PATH}DrScheme.init $*;;
+ gui) exec $command -l ${SCHEME_LIBRARY_PATH}guile.init $*;;
+ mit) exec $command -load ${SCHEME_LIBRARY_PATH}mitscheme.init $*;;
+ s48) exec $command $*;;
+ umb) echo "umb-scheme vicinities are too wedged to run slib"; exit 1;;
+ *) exit 1;;
+esac