# -*- coding: utf-8 -*-
"""PyInstaller 진입점: Drev.exe → watcher.cli.main

콘솔이 cp949여도 죽지 않도록 출력 스트림을 관용 모드로 재구성한다.
(한글은 cp949로 정상 표시되고, 인코딩 불가 문자만 '?'로 대체)
"""

import sys

# 창 모드(콘솔 없음, 2026-08-29): stdout/stderr가 없으면 print가 죽는다 —
# 로그 파일(watcher.log)로 돌려 진행·경고 기록을 남긴다
if sys.stdout is None or sys.stderr is None:
    import os
    _base = (os.path.dirname(sys.executable)
             if getattr(sys, "frozen", False) else os.getcwd())
    _log = open(os.path.join(_base, "watcher.log"), "a",
                encoding="utf-8", errors="replace", buffering=1)
    sys.stdout = sys.stderr = _log

for _stream in (sys.stdout, sys.stderr):
    try:
        _stream.reconfigure(errors="replace")
    except (AttributeError, ValueError):
        pass

from watcher.cli import main  # noqa: E402  (스트림 설정 후 임포트)

if __name__ == "__main__":
    sys.exit(main())
