The user is no longer correctly stored in the session, and I'm not sure why not.
68 lines
1.9 KiB
Clojure
68 lines
1.9 KiB
Clojure
(ns youyesyet.core
|
|
(:require [youyesyet.handler :as handler]
|
|
[luminus.repl-server :as repl]
|
|
[luminus.http-server :as http]
|
|
[luminus-migrations.core :as migrations]
|
|
[youyesyet.config :refer [env]]
|
|
[clojure.tools.cli :refer [parse-opts]]
|
|
[clojure.tools.logging :as log]
|
|
[mount.core :as mount])
|
|
(:gen-class))
|
|
|
|
(def cli-options
|
|
[["-p" "--port PORT" "Port number"
|
|
:parse-fn #(Integer/parseInt %)]])
|
|
|
|
(mount/defstate ^{:on-reload :noop}
|
|
http-server
|
|
:start
|
|
(http/start
|
|
(-> env
|
|
(assoc :handler handler/app)
|
|
(update :port #(or (-> env :options :port) %))))
|
|
:stop
|
|
(http/stop http-server))
|
|
|
|
(mount/defstate ^{:on-reload :noop}
|
|
repl-server
|
|
:start
|
|
(when-let [nrepl-port (env :nrepl-port)]
|
|
(repl/start {:port nrepl-port}))
|
|
:stop
|
|
(when repl-server
|
|
(repl/stop repl-server)))
|
|
|
|
|
|
(defn init-jndi []
|
|
(System/setProperty "java.naming.factory.initial"
|
|
"org.apache.naming.java.javaURLContextFactory")
|
|
(System/setProperty "java.naming.factory.url.pkgs"
|
|
"org.apache.naming"))
|
|
|
|
(defn start-app [args]
|
|
(init-jndi)
|
|
(doseq [component (-> args
|
|
(parse-opts cli-options)
|
|
mount/start-with-args
|
|
:started)]
|
|
(log/info component "started"))
|
|
(.addShutdownHook (Runtime/getRuntime)
|
|
(Thread. handler/destroy)))
|
|
|
|
|
|
(defn -main [& args]
|
|
(cond
|
|
(some #{"migrate" "rollback"} args)
|
|
(do
|
|
(mount/start #'youyesyet.config/env)
|
|
(migrations/migrate args (select-keys env [:database-url]))
|
|
(System/exit 0))
|
|
:else
|
|
(start-app args)))
|
|
|
|
(mount/stop)
|
|
|
|
(mount/start)
|
|
|
|
|