quickdocs-server/app.lisp
2015-07-30 22:38:21 +09:00

43 lines
1 KiB
Common Lisp

#+sbcl
(progn
(setf sb-impl::*default-external-format* :utf-8)
(setf sb-alien::*default-c-string-external-format* :utf-8))
(ql:quickload :quickdocs-server)
(defpackage quickdocs-server.app
(:use :cl)
(:import-from :lack.builder
:builder)
(:import-from :ppcre
:scan
:regex-replace)
(:import-from :quickdocs-server.web
:*web*)
(:import-from :quickdocs-server.config
:config
:productionp
:*static-directory*))
(in-package :quickdocs-server.app)
(builder
(:static
:path (lambda (path)
(if (ppcre:scan "^(?:/images/|/css/|/js/|/robot\\.txt$|/favicon\\.ico$)" path)
path
nil))
:root *static-directory*)
(if (productionp)
nil
:accesslog)
(if (getf (config) :error-log)
`(:backtrace
:output ,(getf (config) :error-log))
nil)
(if (productionp)
nil
(lambda (app)
(lambda (env)
(let ((datafly:*trace-sql* t))
(funcall app env)))))
*web*)