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

.DESCRIPTION
    このスクリプトは paozip CLI を使用して .darte ファイルを復号します。
    実行後、flutter pub get && flutter run でアプリを実行できます。

.EXAMPLE
    .\decrypt_lib.ps1
#>

$ErrorActionPreference = "Stop"
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path

# paozip CLI のパス（環境に合わせて変更してください）
$PaozipDir = "C:\Pao\paozip\paozip-dart"

Write-Host "=== pao_barcode ライブラリを復号しています ===" -ForegroundColor Cyan

$libDir = Join-Path $ScriptDir "lib"
$darteFiles = Get-ChildItem -Path $libDir -Filter "*.darte" -Recurse -File

if ($darteFiles.Count -eq 0) {
    Write-Host "復号するファイルがありません（既に復号済みか、暗号化されていません）" -ForegroundColor Yellow
    exit 0
}

Push-Location $PaozipDir
try {
    foreach ($file in $darteFiles) {
        $dartePath = $file.FullName
        $dartPath = $dartePath -replace '\.darte$', '.dart'

        Write-Host "  復号: $($file.Name) -> $([System.IO.Path]::GetFileName($dartPath))"
        dart run bin/paozip.dart decrypt $dartePath -o $dartPath -f

        if ($LASTEXITCODE -eq 0) {
            Remove-Item $dartePath -Force
        }
    }
}
finally {
    Pop-Location
}

Write-Host ""
Write-Host "=== 復号完了 ===" -ForegroundColor Green
Write-Host "次のコマンドでアプリを実行できます:"
Write-Host "  flutter pub get"
Write-Host "  flutter run"
