Skip to content

Instantly share code, notes, and snippets.

@visibletrap
Created March 12, 2019 14:56
Show Gist options
  • Save visibletrap/65e7d337d8372f602287a6fa9bbb19f6 to your computer and use it in GitHub Desktop.
Save visibletrap/65e7d337d8372f602287a6fa9bbb19f6 to your computer and use it in GitHub Desktop.
deps.edn + ring + compojure
{:deps {org.clojure/clojure {:mvn/version "1.10.0"}
ring/ring-core {:mvn/version "1.7.1"}
ring/ring-jetty-adapter {:mvn/version "1.7.1"}
compojure {:mvn/version "1.6.1"}}}
(ns light
(:require [compojure.core :refer [routes GET]]
[compojure.route :as route]
[ring.adapter.jetty :refer [run-jetty]]))
(def handler
(routes
(GET "/" [] "<h1>Hello World</h1>")
(route/not-found "<h1>Page not found</h1>")))
(defonce server (atom nil))
(defn start-webserver [& [{:keys [repl?]}]]
(reset! server (run-jetty #'handler {:port 3000 :join? (not repl?)})))
(defn stop-webserver []
(when @server
(.stop @server)
(reset! server nil)))
(defn -main [& _]
(start-webserver))
(comment
; For starting server on repl
(do
(stop-webserver)
(start-webserver {:repl? true}))
)
; For starting server via shell
; $ clj -m light
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment