Skip to content

Commit 30379e6

Browse files
committed
Randomize port on REPL start
1 parent bd9368b commit 30379e6

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

dev/user.clj

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
(ns user
22
(:require
3+
[clojure.core.server :as server]
4+
[clojure.java.io :as io]
35
[clojure.test :as t]
46
[clojure.tools.namespace.repl :as ns]))
57

@@ -31,6 +33,22 @@
3133
(println (str "#p" (position) " " '~form " => (" (- (System/currentTimeMillis) t#) " ms) " res#)))
3234
res#))
3335

36+
(defn -main [& args]
37+
;; setup repl
38+
(let [args (apply array-map args)
39+
port (or
40+
(some-> (get args "--port") parse-long)
41+
(+ 1024 (rand-int 64512)))
42+
file (io/file ".repl-port")]
43+
(println "Started Server Socket REPL on port" port)
44+
(spit file port)
45+
(.deleteOnExit file)
46+
(server/start-server
47+
{:name "repl"
48+
:port port
49+
:accept 'clojure.core.server/repl
50+
:server-daemon false})))
51+
3452
(defn test-all []
3553
(reload)
3654
(t/run-all-tests #"datascript\..*"))

script/repl.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@
22
set -o errexit -o nounset -o pipefail
33
cd "`dirname $0`/.."
44

5-
echo "Starting Socket REPL server on port 5555"
6-
clj -A:1.11.1:dev:test:bench -X clojure.core.server/start-server :name repl :port 5555 :accept clojure.core.server/repl :server-daemon false
5+
clj -A:1.11.1:dev:test:bench -M -m user

0 commit comments

Comments
 (0)