Files
goose/ui/desktop/scripts/generate-update-icon.js
2025-06-12 11:25:44 -07:00

53 lines
1.6 KiB
JavaScript

const { createCanvas, loadImage } = require('canvas');
const fs = require('fs');
const path = require('path');
async function generateUpdateIcon() {
// Load the original icon
const iconPath = path.join(__dirname, '../src/images/iconTemplate.png');
const icon = await loadImage(iconPath);
// Create canvas
const canvas = createCanvas(22, 22);
const ctx = canvas.getContext('2d');
// Draw the original icon
ctx.drawImage(icon, 0, 0);
// Add red dot in top-right corner
ctx.fillStyle = '#FF0000';
ctx.beginPath();
ctx.arc(18, 4, 3, 0, 2 * Math.PI);
ctx.fill();
// Save the new icon
const outputPath = path.join(__dirname, '../src/images/iconTemplateUpdate.png');
const buffer = canvas.toBuffer('image/png');
fs.writeFileSync(outputPath, buffer);
console.log('Generated update icon at:', outputPath);
// Also generate @2x version
const canvas2x = createCanvas(44, 44);
const ctx2x = canvas2x.getContext('2d');
// Load and draw @2x version
const icon2xPath = path.join(__dirname, '../src/images/iconTemplate@2x.png');
const icon2x = await loadImage(icon2xPath);
ctx2x.drawImage(icon2x, 0, 0);
// Add red dot in top-right corner (scaled)
ctx2x.fillStyle = '#FF0000';
ctx2x.beginPath();
ctx2x.arc(36, 8, 6, 0, 2 * Math.PI);
ctx2x.fill();
// Save the @2x version
const output2xPath = path.join(__dirname, '../src/images/iconTemplateUpdate@2x.png');
const buffer2x = canvas2x.toBuffer('image/png');
fs.writeFileSync(output2xPath, buffer2x);
console.log('Generated @2x update icon at:', output2xPath);
}
generateUpdateIcon().catch(console.error);