33 lines
1.3 KiB
JavaScript
33 lines
1.3 KiB
JavaScript
/**
|
|
* 从已确认的图标包同步 YCode 应用图标,不重新绘制或缩放原图。
|
|
* 输入:resources/branding/(原图、各尺寸 PNG、Windows ICO 和预览)
|
|
* 用法:node scripts/gen-icon.mjs
|
|
*/
|
|
import { copyFileSync, mkdirSync, readdirSync } from 'node:fs'
|
|
import { dirname, join } from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
const root = join(dirname(fileURLToPath(import.meta.url)), '..')
|
|
const packDir = join(root, 'resources', 'branding')
|
|
|
|
function copy(source, destination) {
|
|
const target = join(root, destination)
|
|
mkdirSync(dirname(target), { recursive: true })
|
|
copyFileSync(join(packDir, source), target)
|
|
}
|
|
|
|
copy('windows/ycode.ico', 'build/icon.ico')
|
|
copy('png/ycode-1024.png', 'build/icon.png')
|
|
copy('png/ycode-512.png', 'resources/icon.png')
|
|
copy('png/ycode-32.png', 'resources/tray.png')
|
|
copy('Ycode-Icon-Preview.png', 'build/icon-preview.png')
|
|
copy('png/ycode-128.png', 'src/renderer/src/assets/ycode.png')
|
|
copy('web/favicon.ico', 'src/renderer/public/favicon.ico')
|
|
|
|
for (const filename of readdirSync(join(packDir, 'png'))) {
|
|
const match = /^ycode-(\d+)\.png$/.exec(filename)
|
|
if (match) copy(`png/${filename}`, `build/sizes/icon-${match[1]}.png`)
|
|
}
|
|
|
|
console.log('YCode 图标已同步:Windows ICO、窗口、托盘、界面、favicon 和各尺寸 PNG')
|