From 73c14a8d0a5af2a553e325506ca5dc404412f6b1 Mon Sep 17 00:00:00 2001 From: heyarne Date: Sun, 3 May 2020 14:39:31 +0200 Subject: [PATCH] Add logging and split clj/cljs dependencies properly --- deps.edn | 23 +++++++++++++++++------ shadow-cljs.edn | 2 +- src/heyarne/all_my_friends/server.clj | 26 +++++++++++++++++++------- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/deps.edn b/deps.edn index d4dcac4..5298d68 100644 --- a/deps.edn +++ b/deps.edn @@ -1,7 +1,18 @@ -{:paths ["src" "resources"] - :deps {thheller/shadow-cljs {:mvn/version "2.8.109"} - appliedscience/js-interop {:mvn/version "0.2.5"} - reagent {:mvn/version "1.0.0-alpha1"} - +{:paths ["src" "resources"] + :extra-paths ["resources"] + :deps {environ {:mvn/version "1.1.0"} http-kit {:mvn/version "2.3.0"} - compojure {:mvn/version "1.6.1"}}} + compojure {:mvn/version "1.6.1"} + ring-logger {:mvn/version "1.0.1"}} + + :aliases + ;; clojurescript build tool and dependencies (see also shadow-cljs.edn) + {:cljs {:extra-deps {thheller/shadow-cljs {:mvn/version "2.8.109"} + appliedscience/js-interop {:mvn/version "0.2.5"} + reagent {:mvn/version "1.0.0-alpha1"}} + :main-opts ["-m" "shadow.cljs.devtools.cli"]} + + ;; packaging the server as a standalone jar for production + :uberjar {:extra-deps {luchiniatwork/cambada {:mvn/version "1.0.2"}} + :main-opts ["-m" "cambada.uberjar" + "-m" "heyarne.all-my-friends.server"]}}} diff --git a/shadow-cljs.edn b/shadow-cljs.edn index b01c26b..218e425 100644 --- a/shadow-cljs.edn +++ b/shadow-cljs.edn @@ -1,4 +1,4 @@ -{:deps true +{:deps {:aliases [:cljs]} :ssl {:keystore "ssl/localhost.jks" :password "shadow-cljs"} :dev-http {8080 "resources/public"} diff --git a/src/heyarne/all_my_friends/server.clj b/src/heyarne/all_my_friends/server.clj index b6c9e45..70734dc 100644 --- a/src/heyarne/all_my_friends/server.clj +++ b/src/heyarne/all_my_friends/server.clj @@ -1,24 +1,36 @@ (ns heyarne.all-my-friends.server (:require [org.httpkit.server :as http] [compojure.core :as router] - [compojure.route :as route]) - #_(:gen-class)) + [compojure.route :as route] + [clojure.java.io :as io] + [environ.core :refer [env]] + [ring.logger :as logger]) + (:gen-class)) (router/defroutes app - #_(router/GET "/" [] - {:status 200 - :body "Hello world"}) - (route/files "/") + (router/POST "/upload" [req] + (println "/upload" req) + {:status 400}) + (router/GET "/" [] + (slurp (io/resource "public/index.html"))) + (route/resources "/") (route/not-found "Not found.")) (defonce server (atom nil)) (defn stop-server [] (when-not (nil? @server) + (println "Stopping server…") (@server :timeout 100) (reset! server nil))) + (defn -main [& args] - (reset! server (http/run-server #'app {:port 8081}))) + (let [port (env :port 8081)] + (println "Starting server on port" port) + (reset! server (-> #'app + (logger/wrap-with-logger) + (http/run-server {:port port}))))) #_(-main) +#_(stop-server)