Browse code
(init)
Ed Langley authored on 06/09/2019 06:33:37
Showing 6 changed files
Showing 6 changed files
1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,17 @@ |
1 |
+FROM bitnami/minideb:buster |
|
2 |
+ |
|
3 |
+COPY setup /setup |
|
4 |
+RUN /setup/apt |
|
5 |
+ |
|
6 |
+WORKDIR /root |
|
7 |
+ARG version=master |
|
8 |
+ENV version=$version |
|
9 |
+ |
|
10 |
+RUN /setup/checkout |
|
11 |
+ |
|
12 |
+RUN /setup/build |
|
13 |
+ |
|
14 |
+COPY sbclrc /root/.sbclrc |
|
15 |
+RUN /usr/local/bin/sbcl --eval '(ensure-directories-exist (translate-logical-pathname #p"SYS:SITE;"))' --quit |
|
16 |
+ |
|
17 |
+ENTRYPOINT ["/usr/local/bin/sbcl"] |
0 | 18 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,49 @@ |
1 |
+(defpackage :fwoar.repl-utils |
|
2 |
+ (:use :cl) |
|
3 |
+ (:export clone github)) |
|
4 |
+ |
|
5 |
+(in-package :cl-user) |
|
6 |
+ |
|
7 |
+(eval-when (:compile-toplevel :load-toplevel :execute) |
|
8 |
+ (load "~/quicklisp/setup.lisp")) |
|
9 |
+ |
|
10 |
+(eval-when (:compile-toplevel :load-toplevel :execute) |
|
11 |
+ (ql:quickload :legit) |
|
12 |
+ (shadow 'load)) |
|
13 |
+ |
|
14 |
+(defun load (pathspec &rest args) |
|
15 |
+ (restart-case (apply #'cl:load pathspec args) |
|
16 |
+ (retry () (apply #'load pathspec args)))) |
|
17 |
+ |
|
18 |
+(defun home-relative-pathname (pathname) |
|
19 |
+ (merge-pathnames pathname |
|
20 |
+ (user-homedir-pathname))) |
|
21 |
+ |
|
22 |
+(pushnew (list "SYS:SITE;**;*.*.*" |
|
23 |
+ (home-relative-pathname |
|
24 |
+ (make-pathname :directory '(:relative ".sbcl" "site" :wild-inferiors) |
|
25 |
+ :name :wild |
|
26 |
+ :type :wild))) |
|
27 |
+ (logical-pathname-translations "SYS") |
|
28 |
+ :test #'equal) |
|
29 |
+ |
|
30 |
+(setf (logical-pathname-translations "QL") |
|
31 |
+ `(("QL:LOCAL-PROJECTS;**;*.*.*" ,(home-relative-pathname #p"quicklisp/local-projects/**/*.*")) |
|
32 |
+ ("QL:SOFTWARE;**;*.*.*" ,(home-relative-pathname #p"quicklisp/local-projects/**/*.*")))) |
|
33 |
+ |
|
34 |
+(mapcar (lambda (_) |
|
35 |
+ (load-logical-pathname-translations |
|
36 |
+ (pathname-name _))) |
|
37 |
+ (directory #p"SYS:SITE;*.translations")) |
|
38 |
+ |
|
39 |
+(defun fwoar.repl-utils:clone (repo name) |
|
40 |
+ (legit:clone repo |
|
41 |
+ (translate-logical-pathname (make-pathname :host "QL" |
|
42 |
+ :directory (list :absolute |
|
43 |
+ "LOCAL-PROJECTS" |
|
44 |
+ name))))) |
|
45 |
+ |
|
46 |
+(defun fwoar.repl-utils:github (user repo) |
|
47 |
+ (fwoar.repl-utils:clone (format nil "https://github.com/~a/~a" |
|
48 |
+ user repo) |
|
49 |
+ repo)) |
0 | 9 |
new file mode 100755 |
... | ... |
@@ -0,0 +1,19 @@ |
1 |
+#!/usr/bin/env bash |
|
2 |
+set -eu -o pipefail |
|
3 |
+ |
|
4 |
+cd /sbcl-build |
|
5 |
+ |
|
6 |
+apt-get build-dep -y sbcl |
|
7 |
+./make.sh --fancy --prefix=/usr/local/ --with-sb-linkable-runtime --with-sb-dynamic-core --arch=x86-64 |
|
8 |
+./install.sh |
|
9 |
+ |
|
10 |
+cd /root |
|
11 |
+ |
|
12 |
+wget https://beta.quicklisp.org/quicklisp.lisp -Oquicklisp.lisp |
|
13 |
+/usr/local/bin/sbcl --load quicklisp.lisp --eval '(quicklisp-quickstart:install)' --quit |
|
14 |
+rm quicklisp.lisp |
|
15 |
+ |
|
16 |
+rm -rf /sbcl-build |
|
17 |
+ |
|
18 |
+/setup/cleanup |
|
19 |
+ |
0 | 8 |
new file mode 100755 |
... | ... |
@@ -0,0 +1,7 @@ |
1 |
+#!/usr/bin/env bash |
|
2 |
+set -eu -o pipefail |
|
3 |
+ |
|
4 |
+apt-get purge -y sbcl |
|
5 |
+apt-get install -y apt-rdepends |
|
6 |
+apt-get purge --autoremove -y $(apt-rdepends --build-depends --follow=DEPENDS sbcl | awk '$1 == "Build-Depends:" {print $2}' | tr '\n' ' ' 2>/dev/null) apt-rdepends |
|
7 |
+apt-get autoremove -y |