import os
import datetime


class LogConfig:
    def __init__(self):
        self.log_debug = ""
        self.log_err = ""
        self.log_info = ""
        self.log_worker = ""
        self.get_default_config()

    @staticmethod
    def get_env_variable(var="CI_LOG_PATH"):
        """get log path for testing"""
        try:
            log_path = os.environ[var]
            return str(log_path)
        except Exception as e:
            # now = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')
            log_path = f"/tmp/ci_logs"
            print(
                "[get_env_variable] failed to get environment variables : %s, use default path : %s"
                % (str(e), log_path)
            )
            return log_path

    @staticmethod
    def create_path(log_path):
        if not os.path.isdir(str(log_path)):
            print("[create_path] folder(%s) is not exist." % log_path)
            print("[create_path] create path now...")
            os.makedirs(log_path)

    def get_default_config(self):
        """Make sure the path exists"""
        log_dir = self.get_env_variable()
        self.log_debug = "%s/ci_test_log.debug" % log_dir
        self.log_info = "%s/ci_test_log.log" % log_dir
        self.log_err = "%s/ci_test_log.err" % log_dir
        work_log = os.environ.get("PYTEST_XDIST_WORKER")
        if work_log is not None:
            self.log_worker = f"{log_dir}/{work_log}.log"

        self.create_path(log_dir)


log_config = LogConfig()
