Starting to get the project set up. Nothing is even nearly complete yet.
This commit is contained in:
commit
b6a24bc1ce
59 changed files with 7118 additions and 0 deletions
16
env/dev/clj/user.clj
vendored
Normal file
16
env/dev/clj/user.clj
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
(ns user
|
||||
(:require [mount.core :as mount]
|
||||
[youyesyet.figwheel :refer [start-fw stop-fw cljs]]
|
||||
youyesyet.core))
|
||||
|
||||
(defn start []
|
||||
(mount/start-without #'youyesyet.core/repl-server))
|
||||
|
||||
(defn stop []
|
||||
(mount/stop-except #'youyesyet.core/repl-server))
|
||||
|
||||
(defn restart []
|
||||
(stop)
|
||||
(start))
|
||||
|
||||
|
||||
60
env/dev/clj/youyesyet/core.clj
vendored
Normal file
60
env/dev/clj/youyesyet/core.clj
vendored
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
(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)))
|
||||
|
||||
10
env/dev/clj/youyesyet/dev_middleware.clj
vendored
Normal file
10
env/dev/clj/youyesyet/dev_middleware.clj
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
(ns youyesyet.dev-middleware
|
||||
(:require [ring.middleware.reload :refer [wrap-reload]]
|
||||
[selmer.middleware :refer [wrap-error-page]]
|
||||
[prone.middleware :refer [wrap-exceptions]]))
|
||||
|
||||
(defn wrap-dev [handler]
|
||||
(-> handler
|
||||
wrap-reload
|
||||
wrap-error-page
|
||||
wrap-exceptions))
|
||||
14
env/dev/clj/youyesyet/env.clj
vendored
Normal file
14
env/dev/clj/youyesyet/env.clj
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
(ns youyesyet.env
|
||||
(:require [selmer.parser :as parser]
|
||||
[clojure.tools.logging :as log]
|
||||
[youyesyet.dev-middleware :refer [wrap-dev]]))
|
||||
|
||||
(def defaults
|
||||
{:init
|
||||
(fn []
|
||||
(parser/cache-off!)
|
||||
(log/info "\n-=[youyesyet started successfully using the development profile]=-"))
|
||||
:stop
|
||||
(fn []
|
||||
(log/info "\n-=[youyesyet has shut down successfully]=-"))
|
||||
:middleware wrap-dev})
|
||||
12
env/dev/clj/youyesyet/figwheel.clj
vendored
Normal file
12
env/dev/clj/youyesyet/figwheel.clj
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
(ns youyesyet.figwheel
|
||||
(:require [figwheel-sidecar.repl-api :as ra]))
|
||||
|
||||
(defn start-fw []
|
||||
(ra/start-figwheel!))
|
||||
|
||||
(defn stop-fw []
|
||||
(ra/stop-figwheel!))
|
||||
|
||||
(defn cljs []
|
||||
(ra/cljs-repl))
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue