blob: 07d86b8745ce06cb9f1b584bc82cdd3d7145d53a (
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
|
(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-config! [^io/File file reloader]
(when-not (.existsSync file)
(.createSync file)
(write-to-file! file {} reloader))
(when-not (contains? (read-from-file file) "favourites")
(prn (update-config! file #(assoc % "favourites" #{}) reloader))))
|