12345678910111213141516171819202122232425 |
- (ns attendant.nrepl-component
- (:require
- [cider.nrepl :refer [cider-nrepl-handler]]
- [clojure.java.io :as io]
- [com.stuartsierra.component :as component]
- [nrepl.server :refer [start-server stop-server]]))
- (defrecord NreplServer [port]
- component/Lifecycle
- (start [this]
- (println "starting nrepl server" port this)
- (spit ".nrepl-port" port)
- (->> (start-server
- :bind "0.0.0.0"
- :port port
- :handler cider-nrepl-handler)
- (assoc this :nrepl-server)))
- (stop [this]
- (println "stopping nrepl server" (:nrepl-server this))
- (io/delete-file ".nrepl-port" true)
- (stop-server (:nrepl-server this))
- this))
|