#!/usr/bin/python3

import os
import json
import sys
import subprocess

# TODO add a configure.in to factor that & the go part in configuration.go
CONF_FILENAME = "settings.json"

SNAP_COMMON_ENV = ''
try:
    SNAP_COMMON_ENV = os.environ["SNAP_COMMON"]
except Exception as e:
    sys.stderr.write("Could not find $SNAP_COMMON environment variable\n")
    sys.exit(1)
CONF_FILEPATH = os.path.join(SNAP_COMMON_ENV, CONF_FILENAME)

settings = {}
try:
    with open(CONF_FILEPATH, 'r') as f:
        c = f.read()
        settings = json.loads(c)
except Exception as e:
    print(str(e))
    pass

def validate_bool_with_default(value, default=False):
    if value == "true":
        return True
    elif value == "false":
        return False
    return default

disable_access_token = "false"
try:
    disable_access_token = subprocess.run(
        "snapctl get disableaccesstoken",
        shell=True,
        stdout=subprocess.PIPE,
        check=True,
        stderr=subprocess.PIPE).stdout.decode("utf-8").strip()

    settings['disableAccessToken'] = validate_bool_with_default(disable_access_token)
except Exception as e:
    print(e)
    pass

disable_https = "false"
try:
    disable_https = subprocess.run(
        "snapctl get disablehttps",
        shell=True,
        stdout=subprocess.PIPE,
        check=True,
        stderr=subprocess.PIPE).stdout.decode("utf-8").strip()

    settings['disableHttps'] = validate_bool_with_default(disable_https)
except Exception as e:
    print(e)
    pass

with open(CONF_FILEPATH, 'w+') as f:
    f.write(json.dumps(settings))

# TODO kill & restart main snap daemon
