63 lines
1.1 KiB
Python
Raw Normal View History

2018-11-01 10:10:35 +01:00
# -*- coding: utf-8 -*-
import json
2020-03-29 20:56:50 +02:00
import os
from spoc.flock import locked
2018-11-01 10:10:35 +01:00
from .paths import CONF_FILE, CONF_LOCK
2018-11-01 10:10:35 +01:00
2020-03-29 20:56:50 +02:00
data = {}
mtime = None
def load():
global data
global mtime
file_mtime = os.stat(CONF_FILE).st_mtime
if mtime != file_mtime:
with open(CONF_FILE, 'r') as f:
data = json.load(f)
mtime = file_mtime
def save():
global mtime
with open(CONF_FILE, 'w') as f:
json.dump(data, f, sort_keys=True, indent=4)
mtime = os.stat(CONF_FILE).st_mtime
@locked(CONF_LOCK)
def get_apps():
load()
return data['apps']
@locked(CONF_LOCK)
def get_host():
2020-03-29 20:56:50 +02:00
load()
return data['host']
2020-03-29 20:56:50 +02:00
@locked(CONF_LOCK)
def register_app(name, definition):
2020-03-29 20:56:50 +02:00
load()
data['apps'][name] = definition
2020-03-29 20:56:50 +02:00
save()
@locked(CONF_LOCK)
def unregister_app(name):
2020-03-29 20:56:50 +02:00
load()
try:
del data['apps'][name]
2020-03-29 20:56:50 +02:00
save()
except KeyError:
pass
@locked(CONF_LOCK)
def set_host(key, value):
2020-03-29 20:56:50 +02:00
load()
data['host'][key] = value
2020-03-29 20:56:50 +02:00
save()
@locked(CONF_LOCK)
def set_app(name, key, value):
2020-03-29 20:56:50 +02:00
load()
data['apps'][name][key] = value
2020-03-29 20:56:50 +02:00
save()