Tweak socket config

This commit is contained in:
Michiel Borkent 2020-10-21 13:58:59 +02:00
parent a8268683e0
commit a522cb834f
2 changed files with 8 additions and 7 deletions

View file

@ -261,20 +261,21 @@
(defn load-pod
([pod-spec] (load-pod pod-spec nil))
([pod-spec {:keys [:remove-ns :resolve :socket]}]
([pod-spec {:keys [:remove-ns :resolve :transport]}]
(let [pod-spec (if (string? pod-spec) [pod-spec] pod-spec)
pb (ProcessBuilder. ^java.util.List pod-spec)
_ (if socket
socket? (identical? :socket transport)
_ (if socket?
(.inheritIO pb)
(.redirectError pb java.lang.ProcessBuilder$Redirect/INHERIT))
_ (cond-> (doto (.environment pb)
(.put "BABASHKA_POD" "true"))
socket (.put "BABASHKA_POD_SOCKET" "true"))
socket? (.put "BABASHKA_POD_TRANSPORT" "socket"))
p (.start pb)
port-file (when socket (port-file (.pid p)))
socket-port (when socket (read-port port-file))
port-file (when socket? (port-file (.pid p)))
socket-port (when socket? (read-port port-file))
[socket stdin stdout]
(if socket
(if socket?
(let [^Socket socket
(loop []
(if-let [sock (try (create-socket "localhost" socket-port)

View file

@ -57,7 +57,7 @@
:edn edn/read-string
:json #(cheshire/parse-string % true)
:transit+json transit-json-read)
socket (= "true" (System/getenv "BABASHKA_POD_SOCKET"))
socket (= "socket" (System/getenv "BABASHKA_POD_TRANSPORT"))
[in out] (if socket
(let [server (ServerSocket. 0)
port (.getLocalPort server)