Skip to content

Commit c22d360

Browse files
committed
install script
1 parent 5dae25e commit c22d360

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

install.sh

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#!/usr/bin/env bash
2+
3+
set -euo pipefail
4+
5+
LISP=${LISP=sbcl}
6+
7+
echo "Downloading quicklisp metadata..."
8+
mkdir -p ~/quicklisp
9+
meta=$( curl -s https://beta.quicklisp.org/client/quicklisp.sexp | \
10+
awk '/:client-tar/,/)/' | tr '\n' ' ' | sed -e's/\s\+/ /g' )
11+
12+
url=$( grep -oP '(?<=:url ")[^"]*' <<< "$meta" )
13+
sha256=$( grep -oP '(?<=:sha256 ")[^"]*' <<< "$meta" )
14+
15+
echo "Downloading quicklisp client..."
16+
curl -s "$url" -o ~/quicklisp/quicklisp.tar
17+
18+
if [ "$sha256" != "$(sha256sum ~/quicklisp/quicklisp.tar | cut -d' ' -f 1)" ]
19+
then
20+
echo "sha mismatch" >&2
21+
exit 1
22+
fi
23+
24+
tar xf ~/quicklisp/quicklisp.tar -C ~/quicklisp
25+
rm ~/quicklisp/quicklisp.tar
26+
27+
echo "Cloning ql-https..."
28+
git clone https://github.com/rudolfochrist/ql-https ~/common-lisp/ql-https
29+
30+
echo "Running setup code..."
31+
$LISP <<EOF
32+
(require 'asdf)
33+
(load "~/common-lisp/ql-https/ql-setup.lisp")
34+
(asdf:load-system "ql-https")
35+
(assert (equalp ql-http:*fetch-scheme-functions* '(("http" . ql-https:fetcher) ("https" . ql-https:fetcher))))
36+
(setf ql-https:*quietly-use-https* t)
37+
(quicklisp:setup)
38+
(ql-util:without-prompting
39+
(ql:add-to-init-file))
40+
EOF
41+
42+
cat > ~/quicklisp/setup.lisp <<EOF
43+
(require 'asdf)
44+
(let ((quicklisp-init #p"~/common-lisp/ql-https/ql-setup.lisp"))
45+
(when (probe-file quicklisp-init)
46+
(load quicklisp-init)
47+
(asdf:load-system "ql-https")
48+
(uiop:symbol-call :quicklisp :setup)))
49+
50+
;; optional
51+
#+ql-https
52+
(setf ql-https:*quietly-use-https* t)
53+
EOF
54+
55+
echo "All done!"

0 commit comments

Comments
 (0)