Add http-port override, login UI improvements, and dev tooling
This commit is contained in:
32
src/clj/dev_mcp.clj
Normal file
32
src/clj/dev_mcp.clj
Normal file
@@ -0,0 +1,32 @@
|
||||
(ns dev-mcp
|
||||
"Leiningen task: start nREPL + web server on random ports."
|
||||
(:require [clojure.java.io :as io]
|
||||
[nrepl.server :as nrepl])
|
||||
(:import [java.net ServerSocket]))
|
||||
|
||||
(defn available-port []
|
||||
"Pick a random available TCP port."
|
||||
(with-open [s (ServerSocket. 0)]
|
||||
(.getLocalPort s)))
|
||||
|
||||
(defn- mcp-repl-task [& _args]
|
||||
"Start nREPL server and HTTP server on random ports.
|
||||
|
||||
Writes ports to nrepl-port and .http-port files.
|
||||
Connect with: clj-nrepl-eval -p $(cat nrepl-port)"
|
||||
(let [nrepl-port (available-port)
|
||||
http-port (available-port)]
|
||||
(spit "nrepl-port" (str nrepl-port))
|
||||
(spit ".http-port" (str http-port))
|
||||
(println (format "nREPL port: %d (nrepl-port)" nrepl-port))
|
||||
(println (format "HTTP port: %d (.http-port)" http-port))
|
||||
(nrepl/start-server :port nrepl-port)
|
||||
(require 'user)
|
||||
(user/start-dev http-port)
|
||||
(println "Ready.")
|
||||
@(promise)))
|
||||
|
||||
(defn -main
|
||||
"Entry point for: lein trampoline run -m dev-mcp"
|
||||
[& args]
|
||||
(apply mcp-repl-task args))
|
||||
Reference in New Issue
Block a user