summaryrefslogtreecommitdiff
path: root/src/clj/nicktodo/nrepl.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/clj/nicktodo/nrepl.clj')
-rw-r--r--src/clj/nicktodo/nrepl.clj27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/clj/nicktodo/nrepl.clj b/src/clj/nicktodo/nrepl.clj
new file mode 100644
index 0000000..d9c3c79
--- /dev/null
+++ b/src/clj/nicktodo/nrepl.clj
@@ -0,0 +1,27 @@
+(ns nicktodo.nrepl
+ (:require
+ [nrepl.server :as nrepl]
+ [clojure.tools.logging :as log]))
+
+(defn start
+ "Start a network repl for debugging on specified port followed by
+ an optional parameters map. The :bind, :transport-fn, :handler,
+ :ack-port and :greeting-fn will be forwarded to
+ clojure.tools.nrepl.server/start-server as they are."
+ [{:keys [port bind transport-fn handler ack-port greeting-fn]}]
+ (try
+ (log/info "starting nREPL server on port" port)
+ (nrepl/start-server :port port
+ :bind bind
+ :transport-fn transport-fn
+ :handler handler
+ :ack-port ack-port
+ :greeting-fn greeting-fn)
+
+ (catch Throwable t
+ (log/error t "failed to start nREPL")
+ (throw t))))
+
+(defn stop [server]
+ (nrepl/stop-server server)
+ (log/info "nREPL server stopped"))