import os
import subprocess


__version__ = "3.0.0"


def get_build():
    try:
        from ttk._build_hash import build
        return build
    except ImportError:
        pass
    try:
        ttk_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
        return subprocess.check_output(
            ["git", "rev-parse", "--short", "HEAD"],
            cwd=ttk_dir,
            stderr=subprocess.DEVNULL,
        ).decode().strip()
    except Exception:
        return "unknown"


def _get_git_hash():
    try:
        return subprocess.check_output(
            ["git", "rev-parse", "--short", "HEAD"],
            stderr=subprocess.DEVNULL,
        ).decode().strip()
    except Exception:
        return None


try:
    from setuptools.command.build_py import build_py as _build_py

    class BuildPyWithBuild(_build_py):
        def run(self):
            build_hash = _get_git_hash()
            if build_hash:
                target = os.path.join(self.get_package_dir("ttk"), "_build_hash.py")
                with open(target, "w") as f:
                    f.write(f'build = "{build_hash}"\n')
            super().run()
except ImportError:
    pass