You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NotePostCLI/config.py

59 lines
1.4 KiB
Python

#!/usr/bin/env python3
import json
import appdirs
import os
import validators
from pathlib import Path
appname = "NotePostCLI"
appauthor = "Netsyms Technologies"
CONFIG_FOLDER = appdirs.user_config_dir(appname, appauthor)
CONFIG_FILE = CONFIG_FOLDER + "/settings.json"
config = {}
def checkconfig():
config_path = Path(CONFIG_FILE)
if config_path.is_file():
try:
# Attempt to read and parse the config file
with open(CONFIG_FILE, 'r') as config_file:
confjson = json.load(config_file)
if "url" not in confjson:
return False
if "username" not in confjson:
return False
if "password" not in confjson:
return False
return True
except Exception:
return False
else:
return False
def loadconfig():
global config
with open(CONFIG_FILE, 'r') as config_file:
config = json.load(config_file)
def saveconfig():
global config
jsonstring = json.dumps(config, sort_keys=True, indent=4)
if not os.path.exists(CONFIG_FOLDER):
os.makedirs(CONFIG_FOLDER)
with open(CONFIG_FILE, 'w') as config_file:
config_file.write(jsonstring)
# Protect from other users who might want to peek at our credentials
os.chmod(CONFIG_FILE, 0o600)
def getconfig():
global config
return config