38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
#!/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')
|
|
const candidates = [
|
|
'icon-512.png',
|
|
'icon-256.png',
|
|
'128x128@2x.png',
|
|
'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) })
|
|
|