diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | boot.properties | 2 | ||||
-rw-r--r-- | build.boot | 51 | ||||
-rw-r--r-- | src/app/core.clj | 8 | ||||
-rw-r--r-- | src/app/handler.clj | 18 | ||||
-rw-r--r-- | src/app/rpc.cljs | 6 | ||||
-rw-r--r-- | src/index.cljs.hl | 10 |
7 files changed, 97 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..73e4863 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +target/ +sdb.db diff --git a/boot.properties b/boot.properties new file mode 100644 index 0000000..14de5ae --- /dev/null +++ b/boot.properties @@ -0,0 +1,2 @@ +BOOT_CLOJURE_VERSION=1.7.0 +BOOT_VERSION=2.6.0 diff --git a/build.boot b/build.boot new file mode 100644 index 0000000..8653396 --- /dev/null +++ b/build.boot @@ -0,0 +1,51 @@ +(set-env! + :dependencies '[[adzerk/boot-cljs "1.7.228-2"] + [adzerk/boot-cljs-repl "0.3.3"] + [com.cemerick/piggieback "0.2.1" :scope "test"] + [compojure "1.5.1"] + [hoplon/castra "3.0.0-alpha5"] + [hoplon "6.0.0-alpha17"] + [org.clojure/clojure "1.7.0"] + [org.clojure/clojurescript "1.7.170"] + [org.clojure/tools.nrepl "0.2.12" :scope "test"] + [pandeiro/boot-http "0.7.6"] + [ring "1.5.0"] + [ring/ring-defaults "0.3.0-beta1"] + [simpledb "0.1.4"] + [weasel "0.7.0" :scope "test"]] + :source-paths #{"src"} + :resource-paths #{"assets"}) + +(require + '[adzerk.boot-cljs :refer [cljs]] + '[adzerk.boot-cljs-repl :refer [cljs-repl start-repl]] + '[hoplon.boot-hoplon :refer [hoplon prerender]] + '[pandeiro.boot-http :refer [serve]]) + +(deftask dev + "Build tankputer for local development." + [] + (comp + (watch) + (speak) + (hoplon) + (cljs-repl) + (cljs) + (serve + :handler 'app.handler/app + :reload true + :port 8000))) + +(deftask prod + "Build tankputer for production deployment." + [] + (comp + (hoplon) + (cljs :optimizations :advanced) + (prerender) + (aot :all true) + (uber) + (jar :main 'app.core :file "tankputer.jar") + (target :dir #{"target"}))) + +;; vim: set expandtab ts=2 sw=2 filetype=clojure : diff --git a/src/app/core.clj b/src/app/core.clj new file mode 100644 index 0000000..42ad0d1 --- /dev/null +++ b/src/app/core.clj @@ -0,0 +1,8 @@ +(ns app.core + (:gen-class) + (:require [app.handler :refer [app]] + [ring.adapter.jetty :refer [run-jetty]])) + +(defn -main + [& args] + (run-jetty app {:port 80})) diff --git a/src/app/handler.clj b/src/app/handler.clj new file mode 100644 index 0000000..eb0c2a3 --- /dev/null +++ b/src/app/handler.clj @@ -0,0 +1,18 @@ +(ns app.handler + (:require [castra.middleware :as castra] + [compojure.core :as c] + [compojure.route :as route] + [ring.middleware.defaults :as d] + [ring.util.response :as response] + [simpledb.core :as db])) + +(c/defroutes app-routes + (c/GET "/" req (response/content-type (response/resource-response "index.html") "text/html")) + (route/resources "/" {:root ""})) + +(def app + (-> app-routes + (castra/wrap-castra 'app.api) + (d/wrap-defaults d/api-defaults))) + +(db/init) diff --git a/src/app/rpc.cljs b/src/app/rpc.cljs new file mode 100644 index 0000000..7edbc4c --- /dev/null +++ b/src/app/rpc.cljs @@ -0,0 +1,6 @@ +(ns app.rpc + (:require-macros + [javelin.core :refer [defc defc=]]) + (:require + [javelin.core] + [castra.core :refer [mkremote]])) diff --git a/src/index.cljs.hl b/src/index.cljs.hl new file mode 100644 index 0000000..c8be06d --- /dev/null +++ b/src/index.cljs.hl @@ -0,0 +1,10 @@ +(page "index.html" + (:require [app.rpc :as rpc])) + +(html + (head + (title "Tankputer")) + (body + (h1 "Tankputer"))) + +;; vim: set expandtab ts=2 sw=2 filetype=clojure : |