blob: 1d9c3c5bc53d623a82b6fb32a740bae3558ab5bf (
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
#! /usr/bin/env bash
op=
end_param=
args=()
cmd_args=()
while let "$#"; do
if test -n "$end_param" || test "$1" = "${1#--}"; then
if test -n "$op"; then
args[${#args[@]}]="$1";
else
op="$1"
fi
shift
else
case "$1" in
--)
end_param=1; shift;
;;
--quicklisp-dir)
NIX_QUICKLISP_DIR="$2";
shift; shift;
;;
--help)
echo "Operation: init, run, update, install {system-name}"
exit 0;
;;
*)
echo "Unknown parameter [$1]" >&2
exit 2;
;;
esac
fi
done
NIX_QUICKLISP_DIR="${NIX_QUICKLISP_DIR:-${HOME}/quicklisp}"
case "$op" in
'') echo "Specify an operation: init, install, run, update"
;;
install)
NIX_LISP_SKIP_CODE=1 source "@clwrapper@/bin/common-lisp.sh";
cmd_args[${#cmd_args[@]}]="$NIX_LISP_EXEC_CODE"
cmd_args[${#cmd_args[@]}]="(load \"$NIX_QUICKLISP_DIR/setup.lisp\")"
for i in "${args[@]}"; do
cmd_args[${#cmd_args[@]}]="$NIX_LISP_EXEC_CODE"
cmd_args[${#cmd_args[@]}]="(ql:quickload :$i)"
done
cmd_args[${#cmd_args[@]}]="$NIX_LISP_EXEC_CODE"
cmd_args[${#cmd_args[@]}]="$NIX_LISP_QUIT"
"@clwrapper@/bin/common-lisp.sh" "${cmd_args[@]}"
;;
update)
NIX_LISP_SKIP_CODE=1 source "@clwrapper@/bin/common-lisp.sh"
ln -sfT "@out@/lib/common-lisp/quicklisp/asdf.lisp" "$NIX_QUICKLISP_DIR/asdf.lisp"
cp -f "@out@/lib/common-lisp/quicklisp/setup.lisp" "$NIX_QUICKLISP_DIR/setup.lisp"
if test -d "$NIX_QUICKLISP_DIR/quicklisp"; then
mv "$NIX_QUICKLISP_DIR/quicklisp"{,-old-$(date +%Y%m%d-%H%M%S)}
fi
cp -rfT "@out@/lib/common-lisp/quicklisp/quicklisp" "$NIX_QUICKLISP_DIR/quicklisp"
"@clwrapper@/bin/common-lisp.sh" "$NIX_LISP_EXEC_CODE" \
"(load \"$NIX_QUICKLISP_DIR/setup.lisp\")" "$NIX_LISP_EXEC_CODE" \
"(ql:update-all-dists)" "$NIX_LISP_EXEC_CODE" "$NIX_LISP_QUIT"
;;
init)
mkdir -p "$NIX_QUICKLISP_DIR"/{dists/quicklisp,tmp,local-projects}
echo 1 > "$NIX_QUICKLISP_DIR/dists/quicklisp/enabled.txt"
cp -f "@out@/lib/common-lisp/quicklisp/quicklisp-distinfo.txt" \
"$NIX_QUICKLISP_DIR/dists/quicklisp/distinfo.txt"
NIX_QUICKLISP_DIR="$NIX_QUICKLISP_DIR" "$0" update
;;
run)
NIX_LISP_SKIP_CODE=1 source "@clwrapper@/bin/common-lisp.sh"
"@clwrapper@/bin/common-lisp.sh" "$NIX_LISP_EXEC_CODE" \
"(load \"$NIX_QUICKLISP_DIR/setup.lisp\")" "${args[@]}"
;;
esac
|