summaryrefslogtreecommitdiff
path: root/raveos-center/raveos_center/beallitasok.py
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-center/raveos_center/beallitasok.py')
-rw-r--r--raveos-center/raveos_center/beallitasok.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/raveos-center/raveos_center/beallitasok.py b/raveos-center/raveos_center/beallitasok.py
new file mode 100644
index 0000000..e041706
--- /dev/null
+++ b/raveos-center/raveos_center/beallitasok.py
@@ -0,0 +1,30 @@
+import json
+import os
+import threading
+from pathlib import Path
+
+KONFIG = Path(os.environ.get("XDG_CONFIG_HOME", Path.home() / ".config")) / "raveos-center"
+FAJL = KONFIG / "beallitasok.json"
+_zar = threading.Lock()
+
+
+def _olvas():
+ try:
+ return json.loads(FAJL.read_text())
+ except (OSError, ValueError):
+ return {}
+
+
+def ertek(kulcs, alap=None):
+ with _zar:
+ return _olvas().get(kulcs, alap)
+
+
+def beallit(kulcs, ertek_):
+ with _zar:
+ adat = _olvas()
+ adat[kulcs] = ertek_
+ KONFIG.mkdir(parents=True, exist_ok=True)
+ ideiglenes = FAJL.with_suffix(".uj")
+ ideiglenes.write_text(json.dumps(adat, ensure_ascii=False, indent=2))
+ os.replace(ideiglenes, FAJL)