import os
from pathlib import Path

appname = "mower"
appauthor = "ArkMower"
# global_space：多开时global_space为多开数据目录

global_space = None

# install_dir：源码目录

_install_dir = Path(os.getcwd()).resolve()


def get_path(path: str) -> Path:
    """
    使用 '@xxx/' 来表示一些特别的目录
    @app: 多开数据目录, 例如 get_path('@app/log/runtime.log')
    @install: 源码目录
    """
    global global_space
    path = path.replace("\\", "/")

    if isinstance(path, str) and path.startswith("@"):
        index = path.find("/")
        index = index if index != -1 else len(path)
        special_dir_name = path[1:index]
        relative_path = path[index:].strip("/")
        if special_dir_name == "app":
            return (
                Path(_install_dir) / relative_path
                if global_space is None
                else Path(global_space) / relative_path
            )
        elif special_dir_name == "install":
            return Path(_install_dir) / relative_path
        else:
            raise ValueError(
                "{}: {} 不是一个有效的特殊目录别名".format(path, special_dir_name)
            )
    else:
        return Path(path)
        # raise ValueError("{} 路径必须以 '@xxx' 开头".format(path))
