Final tweeks for public alpha

This commit is contained in:
Simon Brooke 2018-07-19 11:36:36 +01:00
parent 8f26534b3b
commit 2bf43396f0
8 changed files with 295 additions and 172 deletions

View file

@ -1,19 +1,27 @@
(ns ^{:doc "Devalopment launcher, entirely boilerplate from Luminus."}
(ns ^{:doc "Development launcher, entirely boilerplate from Luminus."}
youyesyet.core
(:require [youyesyet.handler :as handler]
(:require [clojure.tools.cli :refer [parse-opts]]
[clojure.tools.logging :as log]
[luminus.repl-server :as repl]
[luminus.http-server :as http]
[luminus-migrations.core :as migrations]
[mount.core :as mount]
[youyesyet.config :refer [env]]
[clojure.tools.cli :refer [parse-opts]]
[clojure.tools.logging :as log]
[mount.core :as mount])
[youyesyet.handler :as handler])
(:gen-class))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
;;;; youyesyet.core: run as a standalone application. Entirely luminus
;;;; boilerplate.
;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(def cli-options
[["-p" "--port PORT" "Port number"
:parse-fn #(Integer/parseInt %)]])
(mount/defstate ^{:on-reload :noop}
http-server
:start
@ -24,6 +32,7 @@
:stop
(http/stop http-server))
(mount/defstate ^{:on-reload :noop}
repl-server
:start
@ -40,6 +49,7 @@
(System/setProperty "java.naming.factory.url.pkgs"
"org.apache.naming"))
(defn start-app [args]
(init-jndi)
(doseq [component (-> args

67
env/prod/clj/youyesyet/core.clj vendored Normal file
View file

@ -0,0 +1,67 @@
(ns ^{:doc "Production launcher, entirely boilerplate from Luminus."}
youyesyet.core
(:require [clojure.tools.cli :refer [parse-opts]]
[clojure.tools.logging :as log]
[luminus.http-server :as http]
[luminus-migrations.core :as migrations]
[mount.core :as mount]
[youyesyet.config :refer [env]]
[youyesyet.handler :as handler])
(:gen-class))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
;;;; youyesyet.core: run as a standalone application. Entirely luminus
;;;; boilerplate.
;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(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))
(defn stop-app []
(doseq [component (:stopped (mount/stop))]
(log/info component "stopped"))
(shutdown-agents))
(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)))

View file

@ -1,4 +1,5 @@
{:production true
:port 3000
:port 8765
:site-title "Project Hope"
:site-logo "img/ProjectHopeLogo.png"}
:site-logo "img/ProjectHopeLogo.png"
:motd "motd.md"}