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))
|
||||
|
||||
14
env/dev/cljs/youyesyet/dev.cljs
vendored
Normal file
14
env/dev/cljs/youyesyet/dev.cljs
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
(ns ^:figwheel-no-load youyesyet.app
|
||||
(:require [youyesyet.core :as core]
|
||||
[devtools.core :as devtools]
|
||||
[figwheel.client :as figwheel :include-macros true]))
|
||||
|
||||
(enable-console-print!)
|
||||
|
||||
(figwheel/watch-and-reload
|
||||
:websocket-url "ws://localhost:3449/figwheel-ws"
|
||||
:on-jsload core/mount-components)
|
||||
|
||||
(devtools/install!)
|
||||
|
||||
(core/init!)
|
||||
4
env/dev/resources/config.edn
vendored
Normal file
4
env/dev/resources/config.edn
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{:dev true
|
||||
:port 3000
|
||||
;; when :nrepl-port is set the application starts the nREPL server on load
|
||||
:nrepl-port 7000}
|
||||
51
env/dev/resources/logback.xml
vendored
Normal file
51
env/dev/resources/logback.xml
vendored
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<!-- encoders are assigned the type
|
||||
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
|
||||
<encoder>
|
||||
<charset>UTF-8</charset>
|
||||
<pattern>%date{ISO8601} [%thread] %-5level %logger{36} - %msg %n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>log/youyesyet.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>log/youyesyet.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<!-- keep 30 days of history -->
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<charset>UTF-8</charset>
|
||||
<pattern>%date{ISO8601} [%thread] %-5level %logger{36} - %msg %n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<logger name="org.apache.http" level="warn">
|
||||
<AppenderRef ref="STDOUT"/>
|
||||
<AppenderRef ref="FILE"/>
|
||||
</logger>
|
||||
<logger name="org.xnio.nio" level="warn">
|
||||
<AppenderRef ref="STDOUT"/>
|
||||
<AppenderRef ref="FILE"/>
|
||||
</logger>
|
||||
<logger name="com.zaxxer.hikari" level="warn">
|
||||
<AppenderRef ref="STDOUT"/>
|
||||
<AppenderRef ref="FILE"/>
|
||||
</logger>
|
||||
<logger name="com.mchange" level="warn">
|
||||
<AppenderRef ref="STDOUT"/>
|
||||
<AppenderRef ref="FILE"/>
|
||||
</logger>
|
||||
<logger name="org.eclipse.jetty" level="warn">
|
||||
<AppenderRef ref="STDOUT"/>
|
||||
<AppenderRef ref="FILE"/>
|
||||
</logger>
|
||||
<root level="DEBUG">
|
||||
<appender-ref ref="STDOUT" />
|
||||
<appender-ref ref="FILE" />
|
||||
</root>
|
||||
</configuration>
|
||||
11
env/prod/clj/youyesyet/env.clj
vendored
Normal file
11
env/prod/clj/youyesyet/env.clj
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
(ns youyesyet.env
|
||||
(:require [clojure.tools.logging :as log]))
|
||||
|
||||
(def defaults
|
||||
{:init
|
||||
(fn []
|
||||
(log/info "\n-=[youyesyet started successfully]=-"))
|
||||
:stop
|
||||
(fn []
|
||||
(log/info "\n-=[youyesyet has shut down successfully]=-"))
|
||||
:middleware identity})
|
||||
7
env/prod/cljs/youyesyet/prod.cljs
vendored
Normal file
7
env/prod/cljs/youyesyet/prod.cljs
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
(ns youyesyet.app
|
||||
(:require [youyesyet.core :as core]))
|
||||
|
||||
;;ignore println statements in prod
|
||||
(set! *print-fn* (fn [& _]))
|
||||
|
||||
(core/init!)
|
||||
2
env/prod/resources/config.edn
vendored
Normal file
2
env/prod/resources/config.edn
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
{:production true
|
||||
:port 3000}
|
||||
37
env/prod/resources/logback.xml
vendored
Normal file
37
env/prod/resources/logback.xml
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>log/youyesyet.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>log/youyesyet.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<!-- keep 30 days of history -->
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<charset>UTF-8</charset>
|
||||
<pattern>%date{ISO8601} [%thread] %-5level %logger{36} - %msg %n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<logger name="org.apache.http" level="warn">
|
||||
<AppenderRef ref="FILE"/>
|
||||
</logger>
|
||||
<logger name="org.xnio.nio" level="warn">
|
||||
<AppenderRef ref="FILE"/>
|
||||
</logger>
|
||||
<logger name="com.zaxxer.hikari" level="warn">
|
||||
<AppenderRef ref="FILE"/>
|
||||
</logger>
|
||||
<logger name="com.mchange" level="warn">
|
||||
<AppenderRef ref="FILE"/>
|
||||
</logger>
|
||||
<logger name="org.eclipse.jetty" level="warn">
|
||||
<AppenderRef ref="FILE"/>
|
||||
</logger>
|
||||
<root level="INFO">
|
||||
<appender-ref ref="FILE" />
|
||||
</root>
|
||||
</configuration>
|
||||
3
env/test/resources/config.edn
vendored
Normal file
3
env/test/resources/config.edn
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{:test true
|
||||
:port 3001
|
||||
:nrepl-port 7001} ;; when :nrepl-port is set the application starts the nREPL server on load
|
||||
Loading…
Add table
Add a link
Reference in a new issue