diff --git a/apps/desktop/package.json b/apps/desktop/package.json index a46e493..58b983f 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -7,7 +7,8 @@ "dev": "vite", "build": "tsc && vite build", "preview": "vite preview", - "tauri": "node ./scripts/tauri-with-stub.mjs" + "tauri": "node ./scripts/tauri-with-stub.mjs", + "gen:icon": "node ./scripts/build-icon.mjs" }, "dependencies": { "@radix-ui/react-tabs": "^1.1.13", @@ -21,6 +22,7 @@ "react-dom": "^19.0.0" }, "devDependencies": { + "png-to-ico": "^3.0.4", "@tauri-apps/cli": "^2", "@vitejs/plugin-react": "^4.3.4", "typescript": "~5.6.2", diff --git a/apps/desktop/scripts/build-icon.mjs b/apps/desktop/scripts/build-icon.mjs new file mode 100644 index 0000000..db016ae --- /dev/null +++ b/apps/desktop/scripts/build-icon.mjs @@ -0,0 +1,38 @@ +#!/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) }) + diff --git a/apps/desktop/src-tauri/icons/Square310x310Logo.bmp b/apps/desktop/src-tauri/icons/Square310x310Logo.bmp new file mode 100644 index 0000000..2aba9f9 Binary files /dev/null and b/apps/desktop/src-tauri/icons/Square310x310Logo.bmp differ diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index 3bb8023..551836f 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -53,6 +53,7 @@ "nsis": { "displayLanguageSelector": true, "installerIcon": "icons/icon.ico", + "uninstallerIcon": "icons/icon.ico", "headerImage": "icons/nsis-header.bmp", "sidebarImage": "icons/nsis-sidebar.bmp", "installMode": "perMachine",