Initial commit

This commit is contained in:
Simon Brooke 2020-01-27 17:31:07 +00:00
commit 86c675f22d
42 changed files with 1407 additions and 0 deletions

11
env/dev/clj/geocsv/dev_middleware.clj vendored Normal file
View file

@ -0,0 +1,11 @@
(ns geocsv.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 {:app-namespaces ['geocsv]})))

15
env/dev/clj/geocsv/env.clj vendored Normal file
View file

@ -0,0 +1,15 @@
(ns geocsv.env
(:require
[selmer.parser :as parser]
[clojure.tools.logging :as log]
[geocsv.dev-middleware :refer [wrap-dev]]))
(def defaults
{:init
(fn []
(parser/cache-off!)
(log/info "\n-=[geocsv started successfully using the development profile]=-"))
:stop
(fn []
(log/info "\n-=[geocsv has shut down successfully]=-"))
:middleware wrap-dev})

12
env/dev/clj/geocsv/figwheel.clj vendored Normal file
View file

@ -0,0 +1,12 @@
(ns geocsv.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))

33
env/dev/clj/user.clj vendored Normal file
View file

@ -0,0 +1,33 @@
(ns user
"Userspace functions you can run by default in your local REPL."
(:require
[geocsv.config :refer [env]]
[clojure.pprint]
[clojure.spec.alpha :as s]
[expound.alpha :as expound]
[mount.core :as mount]
[geocsv.figwheel :refer [start-fw stop-fw cljs]]
[geocsv.core :refer [start-app]]))
(alter-var-root #'s/*explain-out* (constantly expound/printer))
(add-tap (bound-fn* clojure.pprint/pprint))
(defn start
"Starts application.
You'll usually want to run this on startup."
[]
(mount/start-without #'geocsv.core/repl-server))
(defn stop
"Stops application."
[]
(mount/stop-except #'geocsv.core/repl-server))
(defn restart
"Restarts application."
[]
(stop)
(start))

19
env/dev/cljs/geocsv/app.cljs vendored Normal file
View file

@ -0,0 +1,19 @@
(ns^:figwheel-no-load geocsv.app
(:require
[geocsv.core :as core]
[cljs.spec.alpha :as s]
[expound.alpha :as expound]
[devtools.core :as devtools]))
(extend-protocol IPrintWithWriter
js/Symbol
(-pr-writer [sym writer _]
(-write writer (str "\"" (.toString sym) "\""))))
(set! s/*explain-out* expound/printer)
(enable-console-print!)
(devtools/install!)
(core/init!)

1
env/dev/resources/config.edn vendored Normal file
View file

@ -0,0 +1 @@
{}

34
env/dev/resources/logback.xml vendored Normal file
View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<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/geocsv.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>log/geocsv.%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" />
<logger name="org.xnio.nio" level="warn" />
<logger name="org.eclipse.jetty" level="warn" />
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>