diff --git a/hp.asd b/hp.asd index da3b510..b4e7bf4 100644 --- a/hp.asd +++ b/hp.asd @@ -4,7 +4,7 @@ :defsystem-depends-on ("wild-package-inferred-system") :class "winfer:wild-package-inferred-system" :pathname "src" - :depends-on ("hp/app") + :depends-on ("hp/main") :in-order-to ((test-op (test-op "hp-tests")))) (register-system-packages "lack-middleware-static" '(:lack.middleware.static)) diff --git a/qlfile.lock b/qlfile.lock index 1df4c9c..c82a172 100644 --- a/qlfile.lock +++ b/qlfile.lock @@ -17,7 +17,7 @@ ("hsx" . (:class qlot/source/git:source-git :initargs (:remote-url "https://github.com/skyizwhite/hsx.git") - :version "git-7f276120aa40d26b5e2b23901890d2994438518b")) + :version "git-7ce7751900ce6eacb9264b3109402bcc17aa40b2")) ("ningle-fbr" . (:class qlot/source/git:source-git :initargs (:remote-url "https://github.com/skyizwhite/ningle-fbr.git") diff --git a/src/app.lisp b/src/app.lisp index 77a8004..ace2fd6 100644 --- a/src/app.lisp +++ b/src/app.lisp @@ -1,42 +1,19 @@ -(defpackage #:hp - (:nicknames #:hp/app) +(defpackage #:hp/app (:use #:cl) (:local-nicknames (#:jg #:jingle)) (:local-nicknames (#:fbr #:ningle-fbr)) (:local-nicknames (#:env #:hp/env)) (:local-nicknames (#:mw #:hp/middlewares/*)) (:import-from #:hp/renderer) - (:export #:start - #:stop - #:update)) -(in-package #:hp) - -(defparameter *watch-process* nil) + (:export #:*app*)) +(in-package #:hp/app) (defparameter *app* (jg:make-app :address "localhost" :port env:*port*)) -(defun start () - (when (env:dev-mode-p) - (setf *watch-process* (uiop:launch-program "make watch"))) - (jg:start *app*)) - -(defun stop () - (when (env:dev-mode-p) - (uiop:terminate-process *watch-process*)) - (jg:stop *app*)) - -(defun setup () - (jg:clear-middlewares *app*) - (jg:clear-routing-rules *app*) - (fbr:assign-routes *app* :system "hp" :directory "src/routes") - (jg:install-middleware *app* mw:*path-normalizer*) - (jg:install-middleware *app* mw:*public-server*) - (jg:install-middleware *app* mw:*recoverer*)) - -(defun update () - (stop) - (ql:quickload :hp) - (start)) - -(setup) +(jg:clear-middlewares *app*) +(jg:clear-routing-rules *app*) +(fbr:assign-routes *app* :system "hp" :directory "src/routes") +(jg:install-middleware *app* mw:*recoverer*) +(jg:install-middleware *app* mw:*path-normalizer*) +(jg:install-middleware *app* mw:*public-server*) diff --git a/src/main.lisp b/src/main.lisp new file mode 100644 index 0000000..b334566 --- /dev/null +++ b/src/main.lisp @@ -0,0 +1,28 @@ +(defpackage #:hp + (:nicknames #:hp/main) + (:use #:cl) + (:local-nicknames (#:jg #:jingle)) + (:local-nicknames (#:env #:hp/env)) + (:import-from #:hp/app + #:*app*) + (:export #:start + #:stop + #:update)) +(in-package #:hp) + +(defparameter *watch-process* nil) + +(defun start () + (when (env:dev-mode-p) + (setf *watch-process* (uiop:launch-program "make watch"))) + (jg:start *app*)) + +(defun stop () + (when (env:dev-mode-p) + (uiop:terminate-process *watch-process*)) + (jg:stop *app*)) + +(defun update () + (stop) + (ql:quickload :hp/app) + (start))