#!/usr/bin/env node
import { promises as fs } from 'node:fs'
import path from 'node:path'
import pngToIco from 'png-to-ico'

async function fileExists(p) {
  try { await fs.access(p); return true } catch { return false }
}

async function main() {
  const root = path.resolve(process.cwd(), 'src-tauri', 'icons')
  // Inclua apenas tamanhos suportados pelo NSIS (até 256px).
  // Evite 512px para não gerar ICO inválido para o instalador.
  const candidates = [
    'icon-256.png',        // preferencial
    '128x128@2x.png',      // alias de 256
    'icon-128.png',
    'icon-64.png',
    'icon-32.png',
  ]
  const sources = []
  for (const name of candidates) {
    const p = path.join(root, name)
    if (await fileExists(p)) sources.push(p)
  }
  if (sources.length === 0) {
    console.error('[gen:icon] Nenhuma imagem base encontrada em src-tauri/icons')
    process.exit(1)
  }

  console.log('[gen:icon] Gerando icon.ico a partir de:', sources.map((s) => path.basename(s)).join(', '))
  const buffer = await pngToIco(sources)
  const outPath = path.join(root, 'icon.ico')
  await fs.writeFile(outPath, buffer)
  console.log('[gen:icon] Escrito:', outPath)
}

main().catch((err) => { console.error(err); process.exit(1) })
