12345678910111213141516171819202122232425 |
- (ns attendant.server
- (:require
- [attendant.handler :refer [make-handler]]
- [com.stuartsierra.component :as component]
- [ring.adapter.jetty :refer [run-jetty]]
- [ring.middleware.file :refer [wrap-file]]
- [ring.middleware.reload :refer [wrap-reload]]))
- (defrecord Server [port dir dev]
- component/Lifecycle
- (start [this]
- (println "starting web server" (if dev "(in dev mode)" "") "and serving files from" (or dir "."))
- (let [handler (wrap-file (make-handler) (or dir "."))
- hand (if dev
- (wrap-reload handler)
- handler)]
- (assoc this :server
- (run-jetty hand {:port port
- :join? false}))))
- (stop [this]
- (println "stopping web server")
- (.stop (:server this))
- (.destroy (:server this))
- this))
|