mirror of
https://github.com/vale981/lack
synced 2025-03-05 09:21:39 -05:00
Add lack.middleware.mount.
This commit is contained in:
parent
6718359cba
commit
8747a989d0
2 changed files with 32 additions and 0 deletions
10
lack-middleware-mount.asd
Normal file
10
lack-middleware-mount.asd
Normal file
|
@ -0,0 +1,10 @@
|
|||
(in-package :cl-user)
|
||||
(defpackage :lack-middleware-mount-asd
|
||||
(:use :cl :asdf))
|
||||
(in-package :lack-middleware-mount-asd)
|
||||
|
||||
(defsystem lack-middleware-mount
|
||||
:version "0.1"
|
||||
:author "Eitaro Fukamachi"
|
||||
:license "LLGPL"
|
||||
:components ((:file "src/middleware/mount")))
|
22
src/middleware/mount.lisp
Normal file
22
src/middleware/mount.lisp
Normal file
|
@ -0,0 +1,22 @@
|
|||
(in-package :cl-user)
|
||||
(defpackage lack.middleware.mount
|
||||
(:use :cl))
|
||||
(in-package :lack.middleware.mount)
|
||||
|
||||
(defvar *lack-middleware-mount*
|
||||
(lambda (app path mount-app)
|
||||
(let ((len (length path)))
|
||||
(lambda (env)
|
||||
(let ((path-info (getf env :path-info)))
|
||||
(cond
|
||||
((string= path-info path)
|
||||
(setf (getf env :path-info) "/")
|
||||
(funcall mount-app env))
|
||||
((and (< len (length path-info))
|
||||
(string= path-info path :end1 len)
|
||||
(char= (aref path-info len) #\/))
|
||||
(setf (getf env :path-info)
|
||||
(subseq path-info (length path)))
|
||||
(funcall mount-app env))
|
||||
(t
|
||||
(funcall app env))))))))
|
Loading…
Add table
Reference in a new issue