1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Generate tray icons before installing canvas

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-11-18 16:19:25 -05:00
parent e9e248e32c
commit 71ad8e1d52
2 changed files with 27 additions and 33 deletions

View File

@ -75,11 +75,12 @@
"dist": "yarn run compile && electron-builder --publish onTag",
"dist:dir": "yarn run dist --dir -c.compression=store -c.mac.identity=null",
"download:binaries": "yarn run ts-node build/download_binaries.ts",
"build:tray-icons": "yarn run ts-node build/generate-tray-icons.ts",
"pregenerate-tray-icons": "npx swc ./scripts/generate-tray-icons.ts -o ./scripts/generate-tray-icons.mjs",
"generate-tray-icons": "node ./scripts/generate-tray-icons.mjs",
"build:theme-vars": "yarn run ts-node build/build_theme_vars.ts",
"lint": "PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .",
"lint:fix": "yarn run lint --fix",
"postinstall": "yarn run fix-canvas-deps && yarn run compile:node-fetch",
"postinstall": "yarn run generate-tray-icons && yarn run fix-canvas-deps && yarn run compile:node-fetch",
"mkdocs-serve-local": "docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest",
"verify-docs": "docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict",
"typedocs-extensions-api": "yarn run typedoc src/extensions/extension-api.ts",

View File

@ -3,20 +3,20 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { ensureDir, readFile } from "fs-extra";
import fsExtra from "fs-extra";
import { JSDOM } from "jsdom";
import path from "path";
import sharp from "sharp";
const { ensureDir, readFile, move } = fsExtra;
const size = Number(process.env.OUTPUT_SIZE || "16");
const outputFolder = process.env.OUTPUT_DIR || "./static/build/tray";
const inputFile = process.env.INPUT_SVG_PATH || path.resolve(__dirname, "../src/renderer/components/icon/logo-lens.svg");
const noticeFile = process.env.NOTICE_SVG_PATH || path.resolve(__dirname, "../src/renderer/components/icon/notice.svg");
const spinnerFile = process.env.SPINNER_SVG_PATH || path.resolve(__dirname, "../src/renderer/components/icon/arrow-spinner.svg");
async function ensureOutputFoler() {
await ensureDir(outputFolder);
}
await ensureDir(outputFolder);
function getSvgStyling(colouring: "dark" | "light"): string {
return `
@ -51,6 +51,7 @@ async function generateImage(image: Buffer, size: number, namePrefix: string) {
}
async function generateImages(image: Buffer, size: number, name: string) {
console.log(`Generating ${size}x${size} for ${name}`)
await Promise.all([
generateImage(image, size, name),
generateImage(image, size*2, `${name}@2x`),
@ -103,10 +104,8 @@ async function getIconImage(system: TargetSystems, filePath: string) {
return Buffer.from(root.outerHTML);
}
async function generateTrayIcons() {
try {
try {
console.log("Generating tray icon pngs");
await ensureOutputFoler();
const baseIconTemplateImage = await getBaseIconImage("macos");
const baseIconImage = await getBaseIconImage("windows-or-linux");
@ -117,23 +116,17 @@ async function generateTrayIcons() {
const checkingForUpdatesTemplateImage = await generateImageWithSvg(baseIconTemplateImage, "macos", spinnerFile);
const checkingForUpdatesImage = await generateImageWithSvg(baseIconImage, "windows-or-linux", spinnerFile);
await Promise.all([
// Templates are for macOS only
generateImages(baseIconTemplateImage, size, "trayIconTemplate"),
generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
generateImages(checkingForUpdatesTemplateImage, size, "trayIconCheckingForUpdatesTemplate"),
await generateImages(baseIconTemplateImage, size, "trayIconTemplate"),
await generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
await generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
await generateImages(checkingForUpdatesTemplateImage, size, "trayIconCheckingForUpdatesTemplate"),
// Non-templates are for windows and linux
generateImages(baseIconImage, size, "trayIcon"),
generateImages(updateAvailableImage, size, "trayIconUpdateAvailable"),
generateImages(checkingForUpdatesImage, size, "trayIconCheckingForUpdates"),
]);
await generateImages(baseIconImage, size, "trayIcon"),
await generateImages(updateAvailableImage, size, "trayIconUpdateAvailable"),
await generateImages(checkingForUpdatesImage, size, "trayIconCheckingForUpdates"),
console.log("Generated all images");
} catch (error) {
console.error(error);
}
} catch (error) {
console.error("Failed to generate images", error);
}
generateTrayIcons();