summaryrefslogtreecommitdiff
path: root/src/weepinbell/config.clj
blob: 549139c881f619a6ca0ec424ff8f31bada651c3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(ns weepinbell.config
  "Config loader component that merges default config with user config.
  Default config is located at resources/config.edn"
  (:require [fast-edn.core :as edn]
            [clojure.java.io :as io]))

(defn load-config [config-file]
  (let [default-config (when-let [resource (io/resource "config.edn")]
                         (-> resource slurp edn/read-string))
        external-file (io/file config-file)
        external-config (when (.exists external-file)
                          (-> external-file slurp edn/read-string))]
    (merge default-config external-config)))