2013-09-28 10:40:54 +02:00
|
|
|
(ns ldview.repl
|
|
|
|
(:use ldview.handler
|
|
|
|
ring.server.standalone
|
|
|
|
[ring.middleware file-info file]))
|
|
|
|
|
|
|
|
(defonce server (atom nil))
|
|
|
|
|
|
|
|
(defn get-handler []
|
|
|
|
;; #'app expands to (var app) so that when we reload our code,
|
|
|
|
;; the server is forced to re-resolve the symbol in the var
|
|
|
|
;; rather than having its own copy. When the root binding
|
|
|
|
;; changes, the server picks it up without having to restart.
|
|
|
|
(-> #'app
|
|
|
|
; Makes static assets in $PROJECT_DIR/resources/public/ available.
|
|
|
|
(wrap-file "resources")
|
|
|
|
; Content-Type, Content-Length, and Last Modified headers for files in body
|
|
|
|
(wrap-file-info)))
|
|
|
|
|
|
|
|
(defn start-server
|
|
|
|
"used for starting the server in development mode from REPL"
|
|
|
|
[& [port]]
|
|
|
|
(let [port (if port (Integer/parseInt port) 8080)]
|
|
|
|
(reset! server
|
|
|
|
(serve (get-handler)
|
|
|
|
{:port port
|
|
|
|
:init init
|
|
|
|
:destroy destroy
|
2014-01-18 00:01:50 +01:00
|
|
|
:auto-reload? true
|
2014-01-19 20:36:56 +01:00
|
|
|
:auto-refresh? true
|
2014-01-18 00:01:50 +01:00
|
|
|
:open-browser? false
|
|
|
|
:join? false}))))
|
2013-09-28 10:40:54 +02:00
|
|
|
|
|
|
|
(defn stop-server []
|
|
|
|
(.stop @server)
|
|
|
|
(reset! server nil))
|