Move coleslaw-conf to its own ASDF system

Ideally the package coleslaw would only have symbols that refer to
configuration variables. However to ease setting *BASEDIR* to the right
value using UIOP:SYMBOL-CALL we provide a setter, SET-BASEDIR.

- Split each ASDF system into its own file

- All system definitions are made in the ASDF-USER package, as
recommended by ASDF.

Fixes #110
This commit is contained in:
Javier Olaechea 2016-09-20 17:14:52 -05:00
parent 444698f987
commit 9311c2244f
4 changed files with 44 additions and 16 deletions

12
coleslaw-conf.asd Normal file
View file

@ -0,0 +1,12 @@
(in-package #:asdf-user)
(defsystem #:coleslaw-conf
:name "coleslaw-conf"
:description "Configuration variable for Coleslaw, Flexible Lisp Blogware"
:version "0.9.7"
:license "BSD"
:author "Brit Butler <redline6561@gmail.com>"
:pathname "src/"
:depends-on ()
:serial t
:components ((:file "coleslaw-conf")))

13
coleslaw-test.asd Normal file
View file

@ -0,0 +1,13 @@
(in-package #:asdf-user)
(defsystem #:coleslaw-test
:description "A test suite for coleslaw."
:license "BSD"
:author "Brit Butler <redline6561@gmail.com>"
:depends-on (:coleslaw :prove)
:defsystem-depends-on (:prove-asdf)
:components ((:module "tests"
:components
((:test-file "tests"))))
:perform (test-op :after (op c)
(uiop:symbol-call :prove 'run c)))

View file

@ -1,3 +1,5 @@
(in-package #:asdf-user)
(defsystem #:coleslaw (defsystem #:coleslaw
:name "coleslaw" :name "coleslaw"
:description "Flexible Lisp Blogware" :description "Flexible Lisp Blogware"
@ -5,7 +7,8 @@
:license "BSD" :license "BSD"
:author "Brit Butler <redline6561@gmail.com>" :author "Brit Butler <redline6561@gmail.com>"
:pathname "src/" :pathname "src/"
:depends-on (:closure-template :depends-on (:coleslaw-conf
:closure-template
:3bmd :3bmd
:3bmd-ext-code-blocks :3bmd-ext-code-blocks
:alexandria :alexandria
@ -28,18 +31,6 @@
(:file "coleslaw")) (:file "coleslaw"))
:in-order-to ((test-op (test-op coleslaw-test)))) :in-order-to ((test-op (test-op coleslaw-test))))
(defsystem #:coleslaw-test (defmethod perform :before ((op load-op)
:description "A test suite for coleslaw." (system (eql (find-system :coleslaw))))
:license "BSD" (uiop:symbol-call "COLESLAW-CONF" 'set-basedir #.*load-truename*))
:author "Brit Butler <redline6561@gmail.com>"
:depends-on (:coleslaw :prove)
:defsystem-depends-on (:prove-asdf)
:components ((:module "tests"
:components
((:test-file "tests"))))
:perform (test-op :after (op c)
(uiop:symbol-call :prove 'run c)))
(defpackage #:coleslaw-conf (:export #:*basedir*))
(defparameter coleslaw-conf:*basedir*
(make-pathname :name nil :type nil :defaults *load-truename*))

12
src/coleslaw-conf.lisp Normal file
View file

@ -0,0 +1,12 @@
(defpackage #:coleslaw-conf
(:use #:cl)
(:export #:*basedir*
#:set-basedir))
(in-package #:coleslaw-conf)
(defvar *basedir*)
(defun set-basedir (pathname)
(setf coleslaw-conf:*basedir*
(make-pathname :name nil :type nil :defaults pathname)))