#!/usr/bin/env python3
"""
暗号化された pao_barcode ライブラリを復号するスクリプト。

使い方:
    python decrypt_lib.py

実行後、flutter pub get && flutter run でアプリを実行できます。
"""

import os
import sys

# paozip Python版のパス（環境に合わせて変更してください）
PAOZIP_SRC = r"C:\Pao\paozip\paozip-python\src"
sys.path.insert(0, PAOZIP_SRC)

try:
    import paozip
except ImportError:
    print("ERROR: paozip が見つかりません。")
    print(f"  PAOZIP_SRC を正しいパスに変更してください: {PAOZIP_SRC}")
    sys.exit(1)

SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
LIB_DIR = os.path.join(SCRIPT_DIR, "lib")

print("=== pao_barcode ライブラリを復号しています ===")

count = 0
for root, dirs, files in os.walk(LIB_DIR):
    for f in files:
        if f.endswith(".darte"):
            darte_path = os.path.join(root, f)
            dart_path = darte_path[:-6] + ".dart"  # .darte -> .dart

            print(f"  復号: {f} -> {os.path.basename(dart_path)}")

            decrypted = paozip.decrypt_file(darte_path)
            with open(dart_path, "wb") as out:
                out.write(decrypted)

            os.remove(darte_path)
            count += 1

if count == 0:
    print("復号するファイルがありません（既に復号済みか、暗号化されていません）")
else:
    print()
    print(f"=== 復号完了: {count} ファイル ===")
    print("次のコマンドでアプリを実行できます:")
    print("  flutter pub get")
    print("  flutter run")
