summaryrefslogtreecommitdiff
path: root/src/mulk/benki/main.clj
blob: 1fba60e4fae5450420bcaa35695aada757b2db69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
(ns mulk.benki.main
  (:refer-clojure)
  (:use [clojure         core repl pprint]
        noir.core
        [hiccup core     page-helpers]
        [mulk.benki      util])
  (:require [noir server options]
            [mulk.benki wiki auth]))


(defonce server (doto (Thread. #(noir.server/start 3001))
                  (.setDaemon true)
                  (.start)))

(defn wrap-utf-8 [handler]
  (fn [request]
    (let [response  (handler request)
          ctype     (get-in response [:headers "Content-Type"])
          utf8ctype (str ctype "; charset=utf-8")]
      (if (and ctype
               (re-matches #"^(text/html|text/plain|application/xhtml+xml|text/xml)$" ctype))
        (assoc-in response [:headers "Content-Type"] utf8ctype)
        response))))

(defn wrap-base-uri [handler]
  (fn [request]
    (prn "Hello!")
    (let [base-uri "http://localhost:3001"]
      (with-base-url base-uri
        ((noir.options/wrap-options handler {:base-url base-uri}) request)))))

(do-once ::init
  (noir.server/add-middleware #(wrap-utf-8 %))
  (noir.server/add-middleware #(wrap-base-uri %)))


(defn -main [& args]
  (loop []
    (Thread/sleep 1000000)
    (recur)))