micro_blog_repo_fetchers/src/micro_blog/config.clj

31 lines
792 B
Clojure

(ns micro-blog.config)
(def ^:private env-overrides
{:pocket-base-pw "POCKET_BASE_PW"
:pocket-base-host "POCKET_BASE_HOST"
:blue-sky-api-key "BLUE_SKY_API_KEY"
:minstral-api-key "MISTRAL_API_KEY"
:mastodon-host "MASTODON_BASE_URL"
:mastodon-account-id "MASTODON_ACCOUNT_ID"
:api-host "API_HOST"
:api-port "API_PORT"})
(defn- load-config []
(merge (read-string (slurp "config.edn"))
(into {} (for [[k env-var] env-overrides
:let [env-val (System/getenv env-var)]
:when env-val]
[k env-val]))))
(def config (atom (load-config)))
(defn reload []
(reset! config (load-config)))
(comment
;; Example usage:
;; Access the config
@config
;; Reload the config at runtime
(reload))