Skip to content

Commit 6f4eae4

Browse files
authored
Merge pull request #9 from behrica/configurePortAndBind
made port and bind configurable
2 parents 33e79aa + 10899a1 commit 6f4eae4

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

src/lambdaisland/launchpad.clj

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
(def cli-opts
1717
[["-h" "--help"]
1818
["-v" "--verbose" "Print debug information"]
19+
["-p" "--nrepl-port PORT" "Start nrepl on port. Defaults to 0 (= random)"
20+
:default 0
21+
:parse-fn #(Integer/parseInt %)]
22+
["-b" "--nrepl-bind ADDR" "Bind address of nrepl, by default \"127.0.0.1\"."
23+
:default "127.0.0.1"]
1924
[nil "--cider-nrepl" "Include the CIDER nREPL middleware"]
2025
[nil "--refactor-nrepl" "Include the refactor-nrepl middleware"]
2126
[nil "--cider-connect" "Automatically connect CIDER"]
@@ -136,16 +141,20 @@
136141
(:cider-nrepl options)
137142
(assoc-dep 'cider/cider-nrepl {:mvn/version (or (emacs-cider-version) default-cider-version)})
138143
(:refactor-nrepl options)
139-
(assoc-dep 'refactor-nrepl/refactor-nrepl {:mvn/version (or (emacs-refactor-nrepl-version) default-refactor-nrepl-version)} ))))
144+
(assoc-dep 'refactor-nrepl/refactor-nrepl {:mvn/version (or (emacs-refactor-nrepl-version) default-refactor-nrepl-version)}))))
140145

141-
(defn find-free-nrepl-port [ctx]
142-
(assoc ctx :nrepl-port (free-port)))
146+
(defn get-nrepl-port [ctx]
147+
(assoc ctx :nrepl-port (or (get-in ctx [:options :nrepl-port])
148+
(free-port))))
149+
150+
(defn get-nrepl-bind [ctx]
151+
(assoc ctx :nrepl-bind (get-in ctx [:options :nrepl-bind])))
143152

144153
(defn maybe-read-edn [f]
145154
(when (.exists f) (edn/read-string (slurp f))))
146155

147156
(defn read-deps-edn [ctx]
148-
(let [deps-edn (edn/read-string (slurp "deps.edn") )
157+
(let [deps-edn (edn/read-string (slurp "deps.edn"))
149158
deps-system (maybe-read-edn
150159
(io/file (System/getProperty "user.home") ".clojure" "deps.edn"))
151160

@@ -259,11 +268,13 @@
259268
(catch Exception e
260269
(println "(user/go) failed" e))))))
261270

262-
(defn run-nrepl-server [{:keys [nrepl-port middleware] :as ctx}]
271+
(defn run-nrepl-server [{:keys [nrepl-port nrepl-bind middleware] :as ctx}]
263272
(-> ctx
264273
(update :requires conj 'nrepl.cmdline)
265274
(update :eval-forms (fnil conj [])
266-
`(nrepl.cmdline/-main "--port" ~(str nrepl-port) "--middleware" ~(pr-str middleware)))))
275+
`(nrepl.cmdline/-main "--port" ~(str nrepl-port)
276+
"--bind" ~(str nrepl-bind)
277+
"--middleware" ~(pr-str middleware)))))
267278

268279
(defn register-watch-handlers [ctx handlers]
269280
(update ctx
@@ -380,9 +391,11 @@
380391
(:extra-deps ctx)))
381392
ctx)
382393

383-
(def before-steps [find-free-nrepl-port
394+
(def before-steps [
384395
read-deps-edn
385396
handle-cli-args
397+
get-nrepl-port
398+
get-nrepl-bind
386399
compute-middleware
387400
;; inject dependencies and enable behavior
388401
compute-extra-deps

0 commit comments

Comments
 (0)