diff --git a/Dockerfile b/Dockerfile index e887a46..1ba6480 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ COPY web web COPY t t COPY src src COPY lisp-inference.asd . -COPY *.lisp . +COPY scripts scripts RUN ros install ./lisp-inference.asd RUN ros run -s lisp-inference/web -q EXPOSE 40000 diff --git a/Makefile b/Makefile index 6c71518..1312176 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -SBCL_CMD := sbcl --noinform --disable-debugger --load +SBCL_CMD := sbcl --noinform --disable-debugger --load scripts/fix-quicklisp.lisp --load OBJECTS := lisp-inference DOCKER_IMG = lisp-inference VERSION := latest @@ -8,15 +8,15 @@ all: $(OBJECTS) $(OBJECTS): src/*.lisp - $(SBCL_CMD) build.lisp + $(SBCL_CMD) scripts/build.lisp check: - @$(SBCL_CMD) run-test.lisp + @$(SBCL_CMD) scripts/run-test.lisp server: - @$(SBCL_CMD) run-server.lisp + @$(SBCL_CMD) scripts/run-server.lisp docs-worktree: @if [ ! -d docs ]; then \ @@ -24,7 +24,7 @@ docs-worktree: fi docs: docs-worktree - @$(SBCL_CMD) run-docs.lisp + @$(SBCL_CMD) scripts/run-docs.lisp docs-publish: cd docs/ && git add . && git commit -m "Auto-generated commit from make docs-publish" && git push || true @@ -39,10 +39,13 @@ docker-run: docker-build docker run --rm -it --network=host $(DOCKER_IMG) docker-docs: docker-build docs-worktree - docker run --rm -t -v $(PWD)/docs:/root/.roswell/local-projects/local/lisp-inference/docs --entrypoint=ros $(DOCKER_IMG) run -l run-docs.lisp + docker run --rm -t \ + -v $(PWD)/docs:/root/.roswell/local-projects/local/lisp-inference/docs \ + --entrypoint=ros $(DOCKER_IMG) \ + run -l scripts/fix-quicklisp.lisp -l run-docs.lisp docker-check: docker-build - docker run --rm -t --entrypoint=ros $(DOCKER_IMG) run -l run-test.lisp + docker run --rm -t --entrypoint=ros $(DOCKER_IMG) run -l scripts/fix-quicklisp.lisp -l scripts/run-test.lisp docker-publish: docker-build docker tag $(DOCKER_IMG) $(PUBLIC_IMG) diff --git a/lisp-inference.asd b/lisp-inference.asd index e38face..09e7716 100644 --- a/lisp-inference.asd +++ b/lisp-inference.asd @@ -1,10 +1,21 @@ ;; -*- mode: lisp -*- ;; Manoel Vilela + ;;;; lisp-inference.asd +(defpackage :lisp-inference/system + (:use :cl :uiop :asdf)) + +(in-package :lisp-inference/system) + +(defun get-all-test-files () + (mapcar #'(lambda (p) (list :file (pathname-name p))) + (directory-files (system-relative-pathname :lisp-inference "t/") + "*test*.lisp"))) -(asdf:defsystem #:lisp-inference + +(defsystem #:lisp-inference :description "An Inference Engine using Propositional Calculus" :author "Manoel Vilela " :license "BSD" @@ -23,7 +34,7 @@ (:file "truth-table" :depends-on ("pratt" "parser" "operators" "equivalences")))) -(asdf:defsystem #:lisp-inference/web +(defsystem #:lisp-inference/web :description "An web interface for Lisp Inference Truth Table" :author "Manoel Vilela " :license "BSD" @@ -41,20 +52,15 @@ :pathname "web" :components ((:file "webapp"))) -(asdf:defsystem #:lisp-inference/tests +(defsystem #:lisp-inference/tests :description "Lisp Inference Tests" :author "Manoel Vilela " :license "BSD" :version "0.4.0" :homepage "https://github.com/ryukinix/lisp-inference" :serial t - :pathname "t" :depends-on (:lisp-inference :rove) - :components ((:file "tests") - (:file "test-equivalence-rules") - (:file "test-inference-rules") - (:file "test-infix-parsing") - (:file "test-truth-table") - (:file "test-pratt")) + :pathname "t" + :components #.(get-all-test-files) :perform (test-op (o c) (symbol-call :rove :run c))) diff --git a/build.lisp b/scripts/build.lisp similarity index 91% rename from build.lisp rename to scripts/build.lisp index 89cb57b..cc0cfd6 100644 --- a/build.lisp +++ b/scripts/build.lisp @@ -1,4 +1,3 @@ -(load "fix-quicklisp") (ql:quickload :prove) (ql:quickload :lisp-inference) (in-package :lisp-inference) diff --git a/fix-quicklisp.lisp b/scripts/fix-quicklisp.lisp similarity index 100% rename from fix-quicklisp.lisp rename to scripts/fix-quicklisp.lisp diff --git a/run-docs.lisp b/scripts/run-docs.lisp similarity index 91% rename from run-docs.lisp rename to scripts/run-docs.lisp index a079825..90abb39 100644 --- a/run-docs.lisp +++ b/scripts/run-docs.lisp @@ -1,4 +1,3 @@ -(load "fix-quicklisp") ;; auto generate docs with staple (ql:quickload '(:staple :lisp-inference :lisp-inference/tests :lisp-inference/web) :silent t) diff --git a/run-server.lisp b/scripts/run-server.lisp similarity index 76% rename from run-server.lisp rename to scripts/run-server.lisp index f8515af..4475858 100644 --- a/run-server.lisp +++ b/scripts/run-server.lisp @@ -1,4 +1,3 @@ -(load "fix-quicklisp") (ql:quickload :lisp-inference/web) (webapp:start) (loop do diff --git a/run-test.lisp b/scripts/run-test.lisp similarity index 94% rename from run-test.lisp rename to scripts/run-test.lisp index 416fb94..ec702f9 100644 --- a/run-test.lisp +++ b/scripts/run-test.lisp @@ -1,4 +1,3 @@ -(load "fix-quicklisp") (ql:quickload :lisp-inference/tests :silent t) (defun rove/utils/reporter::print-source-location-as-file-path (stream file line column) diff --git a/t/test-equivalence-rules.lisp b/t/test-equivalence-rules.lisp index f76af2b..9c0facc 100644 --- a/t/test-equivalence-rules.lisp +++ b/t/test-equivalence-rules.lisp @@ -1,3 +1,8 @@ +(defpackage #:lisp-inference/tests/test-equivalence-rules + (:use #:cl + #:lisp-inference + #:rove)) + (in-package #:lisp-inference/tests/test-equivalence-rules) (deftest test-equivalence-rules diff --git a/t/test-inference-rules.lisp b/t/test-inference-rules.lisp index 10cb1a4..8fd584c 100644 --- a/t/test-inference-rules.lisp +++ b/t/test-inference-rules.lisp @@ -1,3 +1,8 @@ +(defpackage #:lisp-inference/tests/test-inference-rules + (:use #:cl + #:lisp-inference + #:rove)) + (in-package #:lisp-inference/tests/test-inference-rules) diff --git a/t/test-infix-parsing.lisp b/t/test-infix-parsing.lisp index 3366960..b8da27c 100644 --- a/t/test-infix-parsing.lisp +++ b/t/test-infix-parsing.lisp @@ -1,3 +1,8 @@ +(defpackage #:lisp-inference/tests/test-infix-parsing + (:use #:cl + #:lisp-inference + #:rove)) + (in-package #:lisp-inference/tests/test-infix-parsing) ;; deprecated in favor of pratt parser diff --git a/t/test-pratt.lisp b/t/test-pratt.lisp index da0f81a..fc344f6 100644 --- a/t/test-pratt.lisp +++ b/t/test-pratt.lisp @@ -1,3 +1,9 @@ +(defpackage #:lisp-inference/tests/test-pratt + (:use #:cl + #:lisp-inference + #:rove)) + + (in-package #:lisp-inference/tests/test-pratt) (deftest test-pratt diff --git a/t/test-truth-table.lisp b/t/test-truth-table.lisp index d8e11b9..19d734d 100644 --- a/t/test-truth-table.lisp +++ b/t/test-truth-table.lisp @@ -1,3 +1,9 @@ +(defpackage #:lisp-inference/tests/test-truth-table + (:use #:cl + #:lisp-inference + #:rove)) + + (in-package :lisp-inference/tests/test-truth-table) (deftest truth-table-tests diff --git a/t/tests.lisp b/t/tests.lisp deleted file mode 100644 index c70a85d..0000000 --- a/t/tests.lisp +++ /dev/null @@ -1,32 +0,0 @@ -(defpackage #:lisp-inference/tests/test-equivalence-rules - (:use #:cl - #:lisp-inference - #:rove)) - -(defpackage #:lisp-inference/tests/test-inference-rules - (:use #:cl - #:lisp-inference - #:rove)) - -(defpackage #:lisp-inference/tests/test-infix-parsing - (:use #:cl - #:lisp-inference - #:rove)) - -(defpackage #:lisp-inference/tests/test-truth-table - (:use #:cl - #:lisp-inference - #:rove)) - -(defpackage #:lisp-inference/tests/test-pratt - (:use #:cl - #:lisp-inference - #:rove)) - -(defpackage #:lisp-inference/tests - (:use #:cl) - (:import-from #:lisp-inference/tests/test-equivalence-rules) - (:import-from #:lisp-inference/tests/test-inference-rules) - (:import-from #:lisp-inference/tests/test-infix-parsing) - (:import-from #:lisp-inference/tests/test-truth-table) - (:import-from #:lisp-inference/tests/test-pratt))