mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Add time cap to generating images
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
7a57a89194
commit
37d3e8bd7c
@ -69,12 +69,18 @@ const generateImage = (image: Buffer, size: number, namePrefix: string) => (
|
|||||||
.toFile(path.join(outputFolder, `${namePrefix}.png`))
|
.toFile(path.join(outputFolder, `${namePrefix}.png`))
|
||||||
);
|
);
|
||||||
|
|
||||||
const generateImages = (image: Buffer, size: number, name: string) => Promise.all([
|
const generateImages = async (image: Buffer, size: number, name: string) => {
|
||||||
generateImage(image, size, name),
|
console.log(`START: Generating ${name}`);
|
||||||
generateImage(image, size * 2, `${name}@2x`),
|
|
||||||
generateImage(image, size * 3, `${name}@3x`),
|
await Promise.all([
|
||||||
generateImage(image, size * 4, `${name}@4x`),
|
generateImage(image, size, name),
|
||||||
]);
|
generateImage(image, size * 2, `${name}@2x`),
|
||||||
|
generateImage(image, size * 3, `${name}@3x`),
|
||||||
|
generateImage(image, size * 4, `${name}@4x`),
|
||||||
|
]);
|
||||||
|
|
||||||
|
console.log(` END: Generating ${name}`);
|
||||||
|
};
|
||||||
|
|
||||||
async function generateImageWithSvg(baseImage: Buffer, system: TargetSystems, filePath: string) {
|
async function generateImageWithSvg(baseImage: Buffer, system: TargetSystems, filePath: string) {
|
||||||
const svgFile = await getIconImage(system, filePath);
|
const svgFile = await getIconImage(system, filePath);
|
||||||
@ -120,6 +126,8 @@ async function getIconImage(system: TargetSystems, filePath: string) {
|
|||||||
return Buffer.from(root.outerHTML);
|
return Buffer.from(root.outerHTML);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const tenMinutes = 10 * 60 * 1000;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
console.log("Generating tray icon pngs");
|
console.log("Generating tray icon pngs");
|
||||||
await mkdir(outputFolder, {
|
await mkdir(outputFolder, {
|
||||||
@ -135,17 +143,26 @@ try {
|
|||||||
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([
|
const imageGenerators = process.platform === "darwin"
|
||||||
// Templates are for macOS only
|
? [
|
||||||
generateImages(baseIconTemplateImage, size, "trayIconTemplate"),
|
generateImages(baseIconTemplateImage, size, "trayIconTemplate"),
|
||||||
generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
|
generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
|
||||||
generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
|
generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"),
|
||||||
generateImages(checkingForUpdatesTemplateImage, size, "trayIconCheckingForUpdatesTemplate"),
|
generateImages(checkingForUpdatesTemplateImage, size, "trayIconCheckingForUpdatesTemplate"),
|
||||||
|
]
|
||||||
|
: [
|
||||||
|
generateImages(baseIconImage, size, "trayIcon"),
|
||||||
|
generateImages(updateAvailableImage, size, "trayIconUpdateAvailable"),
|
||||||
|
generateImages(checkingForUpdatesImage, size, "trayIconCheckingForUpdates"),
|
||||||
|
];
|
||||||
|
|
||||||
// Non-templates are for windows and linux
|
let timeout;
|
||||||
generateImages(baseIconImage, size, "trayIcon"),
|
|
||||||
generateImages(updateAvailableImage, size, "trayIconUpdateAvailable"),
|
await Promise.race([
|
||||||
generateImages(checkingForUpdatesImage, size, "trayIconCheckingForUpdates"),
|
Promise.all(imageGenerators),
|
||||||
|
new Promise((resolve, reject) => timeout = setTimeout(() => {
|
||||||
|
reject(new Error("Timeout, generating images took too long"))
|
||||||
|
}, tenMinutes)),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
console.log("Generated all images");
|
console.log("Generated all images");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user