from __future__ import annotations

import datetime as dt
import subprocess
from pathlib import Path


def get_timestamp_tag(today: dt.date) -> str:
    year_suffix = today.year % 100
    day_of_year = today.timetuple().tm_yday
    return f"{year_suffix}.{day_of_year}"


def main() -> int:
    repo_root = Path(__file__).resolve().parents[1]
    dockerfile_path = repo_root / "docker" / "Dockerfile"

    today = dt.date.today()
    timestamp_tag = get_timestamp_tag(today)

    image_name = "troogs/astrain"
    tags = ["latest", timestamp_tag]

    build_cmd = [
        "docker",
        "build",
        "-f",
        str(dockerfile_path),
        "-t",
        f"{image_name}:{tags[0]}",
        "-t",
        f"{image_name}:{tags[1]}",
        str(repo_root),
    ]

    print(f"Building Docker image with tags: {', '.join(tags)}")
    print(" ".join(build_cmd))

    result = subprocess.run(build_cmd, cwd=str(repo_root))
    return result.returncode


if __name__ == "__main__":
    raise SystemExit(main())
