summary refs log tree commit diff
path: root/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh
blob: 6452bd5d95ae83cd8c66779ca0b5bec8a7982d85 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#! /bin/sh
# Part of NixPkgs package collection
# This script can be used at your option under the same license as NixPkgs or 
# under MIT/X11 license

eval "$NIX_LISP_PREHOOK"

NIX_LISP_COMMAND="$1"
shift

[ -z "$NIX_LISP" ] && NIX_LISP="${NIX_LISP_COMMAND##*/}"

export NIX_LISP NIX_LISP_LOAD_FILE NIX_LISP_EXEC_CODE NIX_LISP_COMMAND NIX_LISP_FINAL_PARAMETERS

test -n "$NIX_LISP_LD_LIBRARY_PATH" &&
	export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH+:}$NIX_LISP_LD_LIBRARY_PATH"

case "$NIX_LISP" in
	sbcl)
		NIX_LISP_LOAD_FILE="--load"
		NIX_LISP_EXEC_CODE="--eval"
		NIX_LISP_FINAL_PARAMETERS=
		;;
	ecl)
		NIX_LISP_LOAD_FILE="-load"
		NIX_LISP_EXEC_CODE="-eval"
		NIX_LISP_FINAL_PARAMETERS=
		;;
	clisp)
		NIX_LISP_LOAD_FILE="-c -l"
		NIX_LISP_EXEC_CODE="-x"
		NIX_LISP_FINAL_PARAMETERS="-repl"
		;;
esac

NIX_LISP_ASDF_REGISTRY_CODE="
  (progn
    (setf asdf:*default-source-registries* '(asdf/source-registry:environment-source-registry))
    (asdf:initialize-source-registry)
    )
"

[ -z "$NIX_LISP_SKIP_CODE" ] && "$NIX_LISP_COMMAND" $NIX_LISP_EARLY_OPTIONS \
	$NIX_LISP_EXEC_CODE "(load \"$NIX_LISP_ASDF/lib/common-lisp/asdf/build/asdf.lisp\")" \
	$NIX_LISP_EXEC_CODE "$NIX_LISP_ASDF_REGISTRY_CODE" \
	$NIX_LISP_FINAL_PARAMETERS \
	"$@"