#!/usr/bin/env python3
from pathlib import Path
import shutil
import sys


def last_non_empty_line(path: Path) -> str | None:
    try:
        with path.open("r", encoding="utf-8", errors="replace") as f:
            for line in reversed(f.readlines()):
                line = line.strip()
                if line:
                    return line
    except Exception as e:
        print(f"[ERROR] 読み込み失敗: {path} ({e})")
    return None


def main() -> None:
    if len(sys.argv) != 2:
        print("使い方: python3 copy_success_logs.py MainTruck5")
        sys.exit(1)

    track_dir = Path(sys.argv[1])
    log_dir = track_dir / "log"
    success_dir = log_dir / "success"

    if not log_dir.is_dir():
        print(f"[ERROR] logフォルダが見つかりません: {log_dir}")
        sys.exit(1)

    success_dir.mkdir(exist_ok=True)

    copied = 0
    skipped = 0

    for log_file in log_dir.glob("*.log"):
        last_line = last_non_empty_line(log_file)

        if last_line is None:
            skipped += 1
            print(f"[SKIP] 空 or 読込不可: {log_file.name}")
            continue

        last_column = last_line.split(",")[-1].strip()

        if last_column.upper() == "NONE":
            skipped += 1
            print(f"[SKIP] {log_file.name} 最終カラム: {last_column}")
            continue

        shutil.copy2(log_file, success_dir / log_file.name)
        copied += 1
        print(f"[COPY] {log_file.name} 最終カラム: {last_column}")

    print()
    print(f"完了: copied={copied}, skipped={skipped}")
    print(f"コピー先: {success_dir}")


if __name__ == "__main__":
    main()
