|
|
|
(defsystem "ritherdon-archive"
|
|
|
|
:version "0.1.0"
|
|
|
|
:author "Craig Oates"
|
|
|
|
:license "MIT"
|
|
|
|
:depends-on ("clack"
|
|
|
|
"lack"
|
|
|
|
"caveman2"
|
|
|
|
"envy"
|
|
|
|
"cl-ppcre"
|
|
|
|
"uiop"
|
|
|
|
|
|
|
|
;; for @route annotation
|
|
|
|
"cl-syntax-annot"
|
|
|
|
|
|
|
|
;; HTML Template
|
|
|
|
"djula"
|
|
|
|
|
|
|
|
;; for DB
|
|
|
|
"datafly"
|
|
|
|
"sxql"
|
|
|
|
|
|
|
|
;;; Additional Packages (after initial Caveman set-up)
|
|
|
|
#:clack-errors ; Error report (HTML/template views)
|
|
|
|
#:mito ; Database ORM
|
|
|
|
#:mito-auth ; Auth. with password hashing and salting
|
|
|
|
#:osicat ; Environment variables (dev/prod.)
|
|
|
|
#:ratify ; Utilites
|
|
|
|
#:trivia ; Pattern matching
|
|
|
|
#:plump ; Parsing (HTML/XML)
|
|
|
|
#:dexador ; HTTP client
|
|
|
|
#:clss ; DOM tree search based on CSS selectors
|
|
|
|
#:3bmd ; Markdown
|
|
|
|
#:cl-json ; JSON Parsing
|
|
|
|
#:cl-who ; Markup
|
|
|
|
#:sqlite ; Sqlite database ORM
|
|
|
|
#:hermetic ; Authentication
|
|
|
|
#:cl-fad ; Files and directories
|
|
|
|
#:xml-emitter ; XML Emitter for RSS Feed
|
|
|
|
#:serapeum ; Pagination
|
|
|
|
#:cl-slug ; Asciify and slugify strings
|
|
|
|
#:str ; String manipulation (easier than built-in)
|
|
|
|
)
|
|
|
|
:pathname "src/"
|
|
|
|
;; :serial t
|
|
|
|
;; I replaced the default module approach to the serial file load
|
|
|
|
;; approach because it was easier organise additional source code
|
|
|
|
;; files into sub-directories, all within /src. I kept getting
|
|
|
|
;; errors when trying to load the system when using additional
|
|
|
|
;; modules or using the :depends-on properties. I have kept the
|
|
|
|
;; original module configuration below for reference/until you feel
|
|
|
|
;; comfortable enought to delete it.
|
|
|
|
:components (;; Caveman Files
|
|
|
|
(:file "config")
|
|
|
|
(:file "main")
|
|
|
|
(:file "db")
|
|
|
|
(:file "view")
|
|
|
|
;; CO-Web Specific Files
|
|
|
|
(:file "app-constants")
|
|
|
|
(:file "utils")
|
|
|
|
(:file "models/user")
|
|
|
|
(:file "authentication")
|
|
|
|
;; Caveman Files
|
|
|
|
(:file "web"))
|
|
|
|
|
|
|
|
:description "The Nicola Ellis & Ritherdon Archive."
|
|
|
|
:in-order-to ((test-op (test-op "ritherdon-archive/tests"))))
|
|
|
|
|
|
|
|
|
|
|
|
(defsystem #:ritherdon-archive/tests
|
|
|
|
:author "Craig Oates"
|
|
|
|
:license "MIT"
|
|
|
|
:depends-on (#:ritherdon-archive
|
|
|
|
#:parachute)
|
|
|
|
:components ((:module "tests"
|
|
|
|
:components
|
|
|
|
((:file "tests"))))
|
|
|
|
:description "Test system for ritherdon-archive."
|
|
|
|
:perform (test-op (op s) (symbol-call :parachute :test :tests)))
|