summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/weepinbell/config.clj17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/weepinbell/config.clj b/src/weepinbell/config.clj
new file mode 100644
index 0000000..9fd2827
--- /dev/null
+++ b/src/weepinbell/config.clj
@@ -0,0 +1,17 @@
+(ns weepinbell.config
+ (:require [clojure.edn :as edn]
+ [clojure.java.io :as io]))
+
+(defn load-config
+ (let [default-config (when-let [resource (io/resource "config.edn")]
+ (-> resource slurp edn/read-string))
+ external-file (io/file "config/config.edn")
+ external-config (when (.exists external-file)
+ (-> external-file slurp edn/read-string))]
+ (merge default-config external-config)))
+
+(def config (delay (load-config)))
+
+(defn get-config [key & keys]
+ (get-in @config (cons key keys)))
+