__filename__ = "config.py"
__author__ = "Bob Mottram"
__license__ = "AGPL3+"
__version__ = "1.0.0"
__maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net"
__status__ = "Production"

import os
import json
import commentjson

def createConfig(baseDir: str) -> None:
    """Creates a configuration file
    """
    configFilename=baseDir+'/config.json'
    if os.path.isfile(configFilename):
        return
    configJson = {
    }
    try:
        with open(configFilename, 'w') as fp:
            commentjson.dump(configJson, fp, indent=4, sort_keys=False)
    except Exception as e:
        print(e)

def setConfigParam(baseDir: str, variableName: str, variableValue) -> None:
    """Sets a configuration value
    """
    createConfig(baseDir)
    configFilename=baseDir+'/config.json'
    try:
        with open(configFilename, 'r') as fp:
            configJson=commentjson.load(fp)
    except Exception as e:
        print(e)
    configJson[variableName]=variableValue
    try:
        with open(configFilename, 'w') as fp:
            commentjson.dump(configJson, fp, indent=4, sort_keys=False)
    except Exception as e:
        print(e)

def getConfigParam(baseDir: str, variableName: str):
    """Gets a configuration value
    """
    createConfig(baseDir)
    configFilename=baseDir+'/config.json'
    try:
        with open(configFilename, 'r') as fp:
            configJson=commentjson.load(fp)
            if configJson.get(variableName):
                return configJson[variableName]
    except Exception as e:
        print(e)
    return None