init codebase
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
(ns user
|
||||
"REPL development helpers. Load all services and provide start!/stop!/reset!."
|
||||
(:refer-clojure :exclude [reset!])
|
||||
(:require [clojure.tools.logging :as log]))
|
||||
|
||||
;; Lazy-load service namespaces to avoid compile errors when not all deps are on classpath
|
||||
(defn- require-ns [sym]
|
||||
(try
|
||||
(require sym)
|
||||
true
|
||||
(catch Exception _
|
||||
false)))
|
||||
|
||||
(defn start!
|
||||
"Start all services that are on the classpath."
|
||||
[]
|
||||
(log/info "Starting development services...")
|
||||
(when (require-ns 'ajet.chat.api.core)
|
||||
((resolve 'ajet.chat.api.core/start!))
|
||||
(log/info "API service started"))
|
||||
(when (require-ns 'ajet.chat.auth-gw.core)
|
||||
((resolve 'ajet.chat.auth-gw.core/start!))
|
||||
(log/info "Auth Gateway started"))
|
||||
(when (require-ns 'ajet.chat.web.core)
|
||||
((resolve 'ajet.chat.web.core/start!))
|
||||
(log/info "Web SM started"))
|
||||
(when (require-ns 'ajet.chat.tui-sm.core)
|
||||
((resolve 'ajet.chat.tui-sm.core/start!))
|
||||
(log/info "TUI SM started"))
|
||||
(log/info "All services started."))
|
||||
|
||||
(defn stop!
|
||||
"Stop all running services."
|
||||
[]
|
||||
(log/info "Stopping development services...")
|
||||
(when (find-ns 'ajet.chat.tui-sm.core)
|
||||
((resolve 'ajet.chat.tui-sm.core/stop!)))
|
||||
(when (find-ns 'ajet.chat.web.core)
|
||||
((resolve 'ajet.chat.web.core/stop!)))
|
||||
(when (find-ns 'ajet.chat.auth-gw.core)
|
||||
((resolve 'ajet.chat.auth-gw.core/stop!)))
|
||||
(when (find-ns 'ajet.chat.api.core)
|
||||
((resolve 'ajet.chat.api.core/stop!)))
|
||||
(log/info "All services stopped."))
|
||||
|
||||
(defn reset!
|
||||
"Stop, reload, and restart all services."
|
||||
[]
|
||||
(stop!)
|
||||
(start!))
|
||||
|
||||
;; Auto-start all services when the REPL loads
|
||||
(try
|
||||
(start!)
|
||||
(catch Exception e
|
||||
(log/error e "Failed to auto-start services — REPL is still available. Fix the issue and run (start!)")
|
||||
(println "\n*** AUTO-START FAILED ***")
|
||||
(println "Error:" (.getMessage e))
|
||||
(println "REPL is ready — fix the issue and run (start!) manually.\n")))
|
||||
|
||||
(comment
|
||||
;; After code changes:
|
||||
(reset!)
|
||||
;; Stop services:
|
||||
(stop!)
|
||||
|
||||
;; Start individual services:
|
||||
(require 'ajet.chat.api.core)
|
||||
(ajet.chat.api.core/start!)
|
||||
(ajet.chat.api.core/stop!)
|
||||
)
|
||||
Reference in New Issue
Block a user