Skip to content

Instantly share code, notes, and snippets.

@brandonbloom
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brandonbloom/60a3dc87969965573271 to your computer and use it in GitHub Desktop.
Save brandonbloom/60a3dc87969965573271 to your computer and use it in GitHub Desktop.
(ns sensible-cljs.server
(:require [me.raynes.fs :as fs]
[cljs.closure :as cljsc]
[ring.util.response :refer (redirect)]
[ring.middleware.file :refer (wrap-file)]
[ring.middleware.file-info :refer (wrap-file-info)]
[ring.adapter.jetty :refer (run-jetty)]
[cljs.repl :as repl]
[cljs.repl.browser :as browser]
[weasel.repl.websocket :as weasel]))
(defn mkdirs []
(fs/mkdirs "target/public/js"))
(mkdirs)
(def advanced? false)
(def handler (-> (fn [request]
(when (= (:uri request) "/")
(redirect (if advanced?
"advanced.html"
"unoptimized.html"))))
(wrap-file "target/public")
(wrap-file "public")
wrap-file-info))
(defn clean []
(fs/delete-dir "target/public"))
(defn build []
(mkdirs)
(cljsc/build "src/sensible-cljs/client.cljs"
{:optimizations (if advanced? :advanced :none)
:output-to "target/public/js/sensible.js"
:output-dir "target/public/js"))
(defn rebuild []
(clean)
(build))
(defonce jetty (atom nil))
(defn stop []
(when-let [server @jetty]
(.stop server)
(reset! jetty nil)))
(defn start []
(stop)
(reset! jetty (run-jetty #'handler {:port 3000 :daemon? true :join? false})))
(defn dev []
(rebuild)
(start))
(defn repl-env []
(weasel/repl-env))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment