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:
parent
e9e248e32c
commit
71ad8e1d52
@ -75,11 +75,12 @@
|
|||||||
"dist": "yarn run compile && electron-builder --publish onTag",
|
"dist": "yarn run compile && electron-builder --publish onTag",
|
||||||
"dist:dir": "yarn run dist --dir -c.compression=store -c.mac.identity=null",
|
"dist:dir": "yarn run dist --dir -c.compression=store -c.mac.identity=null",
|
||||||
"download:binaries": "yarn run ts-node build/download_binaries.ts",
|
"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",
|
"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": "PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .",
|
||||||
"lint:fix": "yarn run lint --fix",
|
"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",
|
"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",
|
"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",
|
"typedocs-extensions-api": "yarn run typedoc src/extensions/extension-api.ts",
|
||||||
|
|||||||
@ -3,20 +3,20 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* 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 { JSDOM } from "jsdom";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import sharp from "sharp";
|
import sharp from "sharp";
|
||||||
|
|
||||||
|
const { ensureDir, readFile, move } = fsExtra;
|
||||||
|
|
||||||
const size = Number(process.env.OUTPUT_SIZE || "16");
|
const size = Number(process.env.OUTPUT_SIZE || "16");
|
||||||
const outputFolder = process.env.OUTPUT_DIR || "./static/build/tray";
|
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 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 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");
|
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 {
|
function getSvgStyling(colouring: "dark" | "light"): string {
|
||||||
return `
|
return `
|
||||||
@ -51,6 +51,7 @@ async function generateImage(image: Buffer, size: number, namePrefix: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function generateImages(image: Buffer, size: number, name: string) {
|
async function generateImages(image: Buffer, size: number, name: string) {
|
||||||
|
console.log(`Generating ${size}x${size} for ${name}`)
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
generateImage(image, size, name),
|
generateImage(image, size, name),
|
||||||
generateImage(image, size*2, `${name}@2x`),
|
generateImage(image, size*2, `${name}@2x`),
|
||||||
@ -103,10 +104,8 @@ async function getIconImage(system: TargetSystems, filePath: string) {
|
|||||||
return Buffer.from(root.outerHTML);
|
return Buffer.from(root.outerHTML);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function generateTrayIcons() {
|
|
||||||
try {
|
try {
|
||||||
console.log("Generating tray icon pngs");
|
console.log("Generating tray icon pngs");
|
||||||
await ensureOutputFoler();
|
|
||||||
|
|
||||||
const baseIconTemplateImage = await getBaseIconImage("macos");
|
const baseIconTemplateImage = await getBaseIconImage("macos");
|
||||||
const baseIconImage = await getBaseIconImage("windows-or-linux");
|
const baseIconImage = await getBaseIconImage("windows-or-linux");
|
||||||
@ -117,23 +116,17 @@ async function generateTrayIcons() {
|
|||||||
const checkingForUpdatesTemplateImage = await generateImageWithSvg(baseIconTemplateImage, "macos", spinnerFile);
|
const checkingForUpdatesTemplateImage = await generateImageWithSvg(baseIconTemplateImage, "macos", spinnerFile);
|
||||||
const checkingForUpdatesImage = await generateImageWithSvg(baseIconImage, "windows-or-linux", spinnerFile);
|
const checkingForUpdatesImage = await generateImageWithSvg(baseIconImage, "windows-or-linux", spinnerFile);
|
||||||
|
|
||||||
await Promise.all([
|
await generateImages(baseIconTemplateImage, size, "trayIconTemplate"),
|
||||||
// Templates are for macOS only
|
await generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
|
||||||
generateImages(baseIconTemplateImage, size, "trayIconTemplate"),
|
await generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
|
||||||
generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
|
await generateImages(checkingForUpdatesTemplateImage, size, "trayIconCheckingForUpdatesTemplate"),
|
||||||
generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
|
|
||||||
generateImages(checkingForUpdatesTemplateImage, size, "trayIconCheckingForUpdatesTemplate"),
|
|
||||||
|
|
||||||
// Non-templates are for windows and linux
|
// Non-templates are for windows and linux
|
||||||
generateImages(baseIconImage, size, "trayIcon"),
|
await generateImages(baseIconImage, size, "trayIcon"),
|
||||||
generateImages(updateAvailableImage, size, "trayIconUpdateAvailable"),
|
await generateImages(updateAvailableImage, size, "trayIconUpdateAvailable"),
|
||||||
generateImages(checkingForUpdatesImage, size, "trayIconCheckingForUpdates"),
|
await generateImages(checkingForUpdatesImage, size, "trayIconCheckingForUpdates"),
|
||||||
]);
|
|
||||||
|
|
||||||
console.log("Generated all images");
|
console.log("Generated all images");
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error("Failed to generate images", error);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
generateTrayIcons();
|
|
||||||
Loading…
Reference in New Issue
Block a user