epicyon/config.py

78 lines
2.0 KiB
Python
Raw Normal View History

2019-07-05 09:20:54 +00:00
__filename__ = "config.py"
__author__ = "Bob Mottram"
__license__ = "AGPL3+"
2019-08-29 13:35:29 +00:00
__version__ = "1.0.0"
2019-07-05 09:20:54 +00:00
__maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net"
__status__ = "Production"
import os
2019-10-12 09:37:21 +00:00
import time
2019-07-05 09:20:54 +00:00
import json
import commentjson
def createConfig(baseDir: str) -> None:
"""Creates a configuration file
"""
configFilename=baseDir+'/config.json'
if os.path.isfile(configFilename):
return
configJson = {
}
2019-10-12 09:37:21 +00:00
tries=0
while tries<5:
try:
with open(configFilename, 'w') as fp:
commentjson.dump(configJson, fp, indent=4, sort_keys=False)
break
except Exception as e:
print(e)
time.sleep(1)
tries+=1
2019-07-05 09:20:54 +00:00
def setConfigParam(baseDir: str, variableName: str, variableValue) -> None:
"""Sets a configuration value
"""
createConfig(baseDir)
configFilename=baseDir+'/config.json'
2019-10-12 09:37:21 +00:00
tries=0
while tries<5:
try:
with open(configFilename, 'r') as fp:
configJson=commentjson.load(fp)
break
except Exception as e:
print(e)
time.sleep(1)
tries+=1
2019-07-05 09:20:54 +00:00
configJson[variableName]=variableValue
2019-10-12 09:37:21 +00:00
tries=0
while tries<5:
try:
with open(configFilename, 'w') as fp:
commentjson.dump(configJson, fp, indent=4, sort_keys=False)
break
except Exception as e:
print(e)
time.sleep(1)
tries+=1
2019-07-05 09:20:54 +00:00
def getConfigParam(baseDir: str, variableName: str):
"""Gets a configuration value
"""
createConfig(baseDir)
configFilename=baseDir+'/config.json'
2019-10-12 09:37:21 +00:00
tries=0
while tries<5:
try:
with open(configFilename, 'r') as fp:
configJson=commentjson.load(fp)
if configJson.get(variableName):
return configJson[variableName]
break
except Exception as e:
print(e)
time.sleep(1)
tries+=1
2019-07-05 09:20:54 +00:00
return None