#!/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) })