from exechain.exechain import *


def get_package_path():
    import tomllib
    with open("pyproject.toml", 'rb') as file:
        data = tomllib.load(file)
        VERSION = data['project']['version']
    
    return f"./dist/exechain-{VERSION}-py3-none-any.whl"

PACKAGE = get_package_path()


Target("all",
    dependencies=[
        TargetRef("package")
    ]
)

Target("build",
    dependencies=[
        TargetRef(PACKAGE)
    ]
)

Target(PACKAGE,
    recept=[
        Shell(f"pyproject-build")
    ]
)

Target("force-build",
    recept=[
        Shell(f"pyproject-build")
    ]
)

Target("package",
    dependencies=[
        TargetRef("build")
    ]
)

Target("install",
    dependencies=[
        TargetRef("package")
    ],
    recept=[
        Shell(f"pip3 install {PACKAGE}")
    ]
)

Target("reinstall",
    dependencies=[
        TargetRef("package")
    ],
    recept=[
        Shell(f"pip3 install {PACKAGE} --force-reinstall")
    ]
)

Target("clean",
    recept=[
        Remove("dist"),
        Remove("src/exechain.egg-info")
    ]
)

Target("test",
    recept=[
        Shell("python3 ./tests/test.py -v")
    ]
)

Target("publish",
    dependencies=[
        TargetRef("clean"),
        TargetRef("test"),
        TargetRef("package")
    ],
    recept=[
        Shell("python3 -m twine upload --repository gitverse ./dist/*"),
        Shell("python3 -m twine upload --repository pypi ./dist/*")
    ]
)

TargetShellContains("git@github.com:eSkry/exechain.git", 
    check_command="git remote -v",
    recept=[
        Shell("git remote add github git@github.com:eSkry/exechain.git")
    ]
)

Target("sync-git-mirror",
    dependencies=[
        TargetRef("git@github.com:eSkry/exechain.git")
    ],
    recept=[
        Shell("git pull && git fetch"),
        Shell("git checkout master"),
        Shell("git push -u github")
    ]
)