#!/usr/bin/python3


from pathlib import Path
import os
import json

class Conf():

    ETC_CONFIG_PATH = "/etc/kare/"
    OPT_CONFIG_PATH = "/opt/kare-applications/config/"
    OPT_BASE_PATH = "/opt/kare-applications/base/"
    INSTALL = "install.json"
    RELEASE = "release.json"

    def __init__(self):
        self.release = None
        self.base_list = []

    def check_etc_conf_exists(self):
        etc_release = Path(os.path.join(self.ETC_CONFIG_PATH, self.RELEASE))
        if etc_release.is_symlink():
            self.release = Path(os.path.join(self.OPT_CONFIG_PATH, self.RELEASE))
            return 1
        
        if etc_release.exists():
            self.release = Path(os.path.join(self.OPT_CONFIG_PATH, self.RELEASE))
            self.move_base(etc_release, release)
            etc_release.symlink_to(self.release)
            
            opt_install = Path(os.path.join(self.OPT_CONFIG_PATH, self.INSTALL))
            etc_install = Path(os.path.join(self.ETC_CONFIG_PATH, self.INSTALL))
            self.move_base(etc_install, opt_install)
            etc_install.symlink_to(opt_install)
        return self.release
    
    def move_base(self, var, opt): 
        os.system(f"mv {var} {opt}")

conf = Conf()
if conf.check_etc_conf_exists():
    opt_base_map = {}
    with open(conf.release, 'r') as file:
        base_map = json.load(file)
    for key, value in base_map.items():
        opt_base_path = os.path.join(conf.OPT_BASE_PATH,"kare-" + key)
        conf.move_base(value, opt_base_path)
        opt_base_map[key] = opt_base_path

    with open(conf.release, 'w') as file:
        json.dump(opt_base_map, file, indent=4) 

    


