move more functions to infra for better testability
This commit is contained in:
parent
2187df1058
commit
af85887931
1 changed files with 15 additions and 1 deletions
|
@ -1,4 +1,7 @@
|
||||||
(ns mastodon-bot.infra)
|
(ns mastodon-bot.infra
|
||||||
|
(:require
|
||||||
|
[cljs.reader :as edn]
|
||||||
|
["fs" :as fs]))
|
||||||
|
|
||||||
(defn js->edn [data]
|
(defn js->edn [data]
|
||||||
(js->clj data :keywordize-keys true))
|
(js->clj data :keywordize-keys true))
|
||||||
|
@ -6,3 +9,14 @@
|
||||||
(defn exit-with-error [error]
|
(defn exit-with-error [error]
|
||||||
(js/console.error error)
|
(js/console.error error)
|
||||||
(js/process.exit 1))
|
(js/process.exit 1))
|
||||||
|
|
||||||
|
(defn find-config []
|
||||||
|
(let [config (or (first *command-line-args*)
|
||||||
|
(-> js/process .-env .-MASTODON_BOT_CONFIG)
|
||||||
|
"config.edn")]
|
||||||
|
(if (fs/existsSync config)
|
||||||
|
config
|
||||||
|
(exit-with-error (str "failed to read config: " config)))))
|
||||||
|
|
||||||
|
(defn load-config []
|
||||||
|
(-> (find-config) (fs/readFileSync #js {:encoding "UTF-8"}) edn/read-string))
|
Reference in a new issue