blob: 2def263ba363453430a0363ca32355920e44aea2 (
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
|
(ns distractionless.config
(:require ["dart:io" :as io]
[cljd.reader :as cljdreader]))
(defn read-from-file [^io/File file]
(->> (.readAsStringSync file)
cljdreader/read-string))
(defn write-to-file! [^io/File file content reloader]
(->> content
pr-str
(.writeAsStringSync file))
(when (some? reloader)
(reset! reloader (when (= @reloader 0)
1
0))))
(defn update-config! [^io/File file func reloader]
(let [new-content (-> (read-from-file file)
func)]
(write-to-file! file new-content reloader)
new-content))
(defn- init-key! [^io/File file reloader k dv]
(when-not (contains? (read-from-file file) k)
(prn (update-config! file #(assoc % k dv) reloader))))
(defn init-config! [^io/File file reloader]
(when-not (.existsSync file)
(.createSync file)
(write-to-file! file {} reloader))
(init-key! file reloader "favourites" #{})
(init-key! file reloader "countdowns" {}))
|