From 7c06f0d8fe406d5e228519089fe8203262a6ec23 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Mon, 6 Jun 2022 12:54:47 -0400 Subject: [PATCH] Manually create update ready icon Signed-off-by: Sebastian Malton --- Makefile | 1 - build/generate-tray-icons.ts | 102 +++++++++++++----- .../trayIconDarkUpdateAvailableTemplate.png | Bin 533 -> 5557 bytes ...trayIconDarkUpdateAvailableTemplate@2x.png | Bin 988 -> 6049 bytes .../tray/trayIconUpdateAvailableTemplate.png | Bin 521 -> 0 bytes .../trayIconUpdateAvailableTemplate@2x.png | Bin 916 -> 0 bytes 6 files changed, 74 insertions(+), 29 deletions(-) delete mode 100644 build/tray/trayIconUpdateAvailableTemplate.png delete mode 100644 build/tray/trayIconUpdateAvailableTemplate@2x.png diff --git a/Makefile b/Makefile index 9dfb2cf512..48ce768766 100644 --- a/Makefile +++ b/Makefile @@ -56,7 +56,6 @@ integration: build build: node_modules binaries/client yarn run npm:fix-build-version $(MAKE) build-extensions -B - yarn run build:tray-icons yarn run compile ifeq "$(DETECTED_OS)" "Windows" # https://github.com/ukoloff/win-ca#clear-pem-folder-on-publish diff --git a/build/generate-tray-icons.ts b/build/generate-tray-icons.ts index c8ca4f1831..40d70f72e3 100644 --- a/build/generate-tray-icons.ts +++ b/build/generate-tray-icons.ts @@ -64,36 +64,78 @@ async function generateNormalImages(template: string, size: number, name: string } async function generateUpdateAvailableImages(template: string, size: number, name: string, noticeSvg: string) { + const circleSvg = new JSDOM(` + + + + + + + `).window.document.getElementsByTagName("svg")[0]; + + circleSvg.innerHTML += getSvgStyling("dark"); + + const circleBuffer = await sharp(Buffer.from(circleSvg.outerHTML)) + .resize({ + width: Math.floor(size/1.5), + height: Math.floor(size/1.5), + }) + .toBuffer(); + + await sharp(circleBuffer) + .toFile(path.join(outputFolder, "circle.png")); + await Promise.all([ sharp(Buffer.from(template)) - .composite([{ - input: ( - await sharp(Buffer.from(noticeSvg)) - .resize({ - width: Math.floor(size/1.5), - height: Math.floor(size/1.5), - }) - .toBuffer() - ), - top: Math.floor(size/2.5), - left: Math.floor(size/2.5), - }]) .resize({ width: size, height: size }) + .composite([ + { + input: circleBuffer, + gravity: "southeast", + /** + * The `clear` blend rule is buggy and currently doesn't work + * + * https://github.com/lovell/sharp/issues/3247 + */ + blend: "clear", + }, + { + input: ( + await sharp(Buffer.from(noticeSvg)) + .resize({ + width: Math.floor(size/1.5), + height: Math.floor(size/1.5), + }) + .toBuffer() + ), + gravity: "southeast", + }, + ]) .png() .toFile(path.join(outputFolder, `${name}.png`)), sharp(Buffer.from(template)) - .composite([{ - input: ( - await sharp(Buffer.from(noticeSvg)) - .resize({ - width: Math.floor((size * 2)/1.5), - height: Math.floor((size * 2)/1.5), - }) - .toBuffer() - ), - top: Math.floor((size * 2)/2.5), - left: Math.floor((size * 2)/2.5), - }]) + .composite([ + { + input: circleBuffer, + gravity: "southeast", + blend: "clear", + }, + { + input: ( + await sharp(Buffer.from(noticeSvg)) + .resize({ + width: Math.floor((size * 2)/1.5), + height: Math.floor((size * 2)/1.5), + }) + .toBuffer() + ), + gravity: "southeast", + }, + ]) .resize({ width: size*2, height: size*2 }) .png() .toFile(path.join(outputFolder, `${name}@2x.png`)), @@ -104,8 +146,6 @@ async function getNoticeSvg(): Promise { const svgData = await readFile(noticeFile, { encoding: "utf-8" }); const noticeSvgRoot = new JSDOM(svgData).window.document.getElementsByTagName("svg")[0]; - noticeSvgRoot.innerHTML += getSvgStyling("dark"); - return noticeSvgRoot.outerHTML; } @@ -117,13 +157,19 @@ async function generateTrayIcons() { const baseTemplates = await getBaseIconTemplates(); const noticeTemplate = await getNoticeSvg(); + void noticeTemplate; + void generateUpdateAvailableImages; + await Promise.all([ generateNormalImages(baseTemplates.light, size, "trayIconDarkTemplate"), - generateUpdateAvailableImages(baseTemplates.light, size, "trayIconDarkUpdateAvailableTemplate", noticeTemplate), + // generateUpdateAvailableImages(baseTemplates.light, size, "trayIconDarkUpdateAvailableTemplate", noticeTemplate), generateNormalImages(baseTemplates.dark, size, "trayIconTemplate"), - generateUpdateAvailableImages(baseTemplates.dark, size, "trayIconUpdateAvailableTemplate", noticeTemplate), ]); + console.warn("Did not update:", [ + "trayIconDarkUpdateAvailableTemplate.png", + "trayIconDarkUpdateAvailableTemplate@2x.png", + ]); console.log("Generated all images"); } catch (error) { console.error(error); diff --git a/build/tray/trayIconDarkUpdateAvailableTemplate.png b/build/tray/trayIconDarkUpdateAvailableTemplate.png index ced61d695c93523c94505a9f73da9dd8accb76d9..25b4125e77587cec7eae5925b2718cba68f3283f 100644 GIT binary patch literal 5557 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 EHwvH@k^lez delta 967 zcmV;&133JlFWd)^BYyx1a7bBm000XU000XU0RWnu7ytkRj!8s8R9J=8R!vA$Q560% z3j-4u&S*kGWHr0OMG%A$UUnm4T~tVNp06D`E(8Mile%-7*F~L`2i1AyZRR)YR0Ze7-jN`RGC*W0ko?3b3}eMl&-r6bglC zaBxt3XJ=={xRP8hN1dIW%IAiB*GL>bYjf~|3OqbKOkS_o(w4`Wj3QDf6v*%Qa~W?) zUV{K*ntvEfLBRyy1I(S+uGU$UfQh_k?;pu7CPlKAqh;Y zmB{TZ(o`xXf-EmDm&`F)!;wrX0&jF{cwk`QnzH6?x598>I|8gDBO}ViI?5GUQeqW$ zXTGqoAiU4d&s)yd*Vl{PV^Mzh0Jx!}$z(FghJVp$)OMG++*roP$89llb8|%mDs5VE ziDohx$L(k3IhJ5BXp0Gl!$kxjF9=rx`Fvg&1_A+FOkZE0!1VU^+G5z=OrS=m8q#U* zt|aPOH*uX35hgk3W*CoiYj@58kHMtn&_>(kY_`HA5($A> zTz_1&oNs7oD5(OY@J;u`jzCLG%S%XP9ZHpVMg z=g2GKthUPuK6Bo7g_pOedd{Ock&p`cte_q~d8`o?s78AL_bO1p(r5qx002ovPDHLkV1oLBx`6-y diff --git a/build/tray/trayIconUpdateAvailableTemplate.png b/build/tray/trayIconUpdateAvailableTemplate.png deleted file mode 100644 index 774fd08d722c5594969209f27b1b48f6d63c989e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmV+k0`~ohP) z_m)Zp0XzVdbg6q13VMrY7 za%f4QRnXrDU_<0;wTcch7!2t5`^nmIoJ0gTlE5l3$iwrzFWOlIVLTo)8jX^*(Cv2d zeg9kn3)YZ-Oftq?)$8>+K}T=5+w)xQL{T(JZ(={+gE1y4N(tq1IYF8?n@tIXsem5P zx2!-A1ixL^owqO?4ig{Jyw~f^eBVFKKBi^+Oci>zJ7E}J$uRw{R4NIyuGMNXQP;3u zG)x*84bDm&$A9Fu4AYSX?JRN>MX&!inT{RhBe`vi3DvWXo!$8_WZ9zuo<^wE00000 LNkvXXu0mjf-4Wye diff --git a/build/tray/trayIconUpdateAvailableTemplate@2x.png b/build/tray/trayIconUpdateAvailableTemplate@2x.png deleted file mode 100644 index 5ea256b7380843677651ebd08902f2d053f9d27d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 916 zcmV;F18e+=P)-?``9dtWH@zW~?(v;a}y5%3oH3Va7X0V$yJUpTG=E&+=KW5nRU04@WY z|JHd6@Sgnm3{>km14jP>aH?46hq1>6Jtqt-d5p(_5?jaX^|J(cZsGhTP^RbH58&Ol z5&>KVPU_!>ECd|U++!BpSU%@RfuFz|pj`Kj2N=9(RLCpraN5s#xhvs%b^mtYn};D; z>)o2ugFU2VE4&2sxQJ5YTa9ILU=GknPwzjr4Z@jRuQnB;%^J~ULtPzQE zN5B*8ao+hMVfPBTIQA1DZD?p{H433Zp-W1=h2NUb%*-h3)6>(Qj;o;%neSnqY*Sz05SkhPT zM9@wc4u@%MY*f!YJK-Hq0fvwhu6yEu?%${Pa<#Y19&eL)t*xzOG8yw@W=Eg^<2u%> zKewD~*oZqHB&+>$Le^Zu?yS2$Mb&jaR4DYfUsB%@yf*SOSM;$oQB$?7sml%3ai7Y-hdz0000