mirror of
https://github.com/streetwriters/notesnook.git
synced 2026-08-29 10:09:26 +02:00
desktop: disable auto updates for flatpak/snap/portable apps
This commit is contained in:
@@ -24,6 +24,7 @@ import type { AppUpdaterEvents } from "electron-updater/out/AppUpdater";
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { config } from "../utils/config";
|
import { config } from "../utils/config";
|
||||||
import { app } from "electron";
|
import { app } from "electron";
|
||||||
|
import { isFlatpak, isPortable, isSnap } from "../utils";
|
||||||
|
|
||||||
type UpdateInfo = { version: string };
|
type UpdateInfo = { version: string };
|
||||||
type Progress = { percent: number };
|
type Progress = { percent: number };
|
||||||
@@ -31,13 +32,15 @@ type Progress = { percent: number };
|
|||||||
const t = initTRPC.create();
|
const t = initTRPC.create();
|
||||||
let cancellationToken: CancellationToken | undefined = undefined;
|
let cancellationToken: CancellationToken | undefined = undefined;
|
||||||
let downloadTimeout: NodeJS.Timeout | undefined = undefined;
|
let downloadTimeout: NodeJS.Timeout | undefined = undefined;
|
||||||
|
const updatesSupported = !isFlatpak() && !isSnap() && !isPortable();
|
||||||
export const updaterRouter = t.router({
|
export const updaterRouter = t.router({
|
||||||
autoUpdates: t.procedure.query(() => config.automaticUpdates),
|
autoUpdates: t.procedure.query(
|
||||||
|
() => updatesSupported && config.automaticUpdates
|
||||||
|
),
|
||||||
releaseTrack: t.procedure.query(() => config.releaseTrack),
|
releaseTrack: t.procedure.query(() => config.releaseTrack),
|
||||||
install: t.procedure.query(() => autoUpdater.quitAndInstall()),
|
install: t.procedure.query(() => autoUpdater.quitAndInstall()),
|
||||||
download: t.procedure.query(async () => {
|
download: t.procedure.query(async () => {
|
||||||
if (cancellationToken) return;
|
if (!updatesSupported || cancellationToken) return;
|
||||||
clearTimeout(downloadTimeout);
|
clearTimeout(downloadTimeout);
|
||||||
await new Promise<string[]>((resolve, reject) => {
|
await new Promise<string[]>((resolve, reject) => {
|
||||||
downloadTimeout = setTimeout(async () => {
|
downloadTimeout = setTimeout(async () => {
|
||||||
@@ -52,7 +55,7 @@ export const updaterRouter = t.router({
|
|||||||
});
|
});
|
||||||
}),
|
}),
|
||||||
check: t.procedure.query(async () => {
|
check: t.procedure.query(async () => {
|
||||||
if (cancellationToken) return;
|
if (!updatesSupported || cancellationToken) return;
|
||||||
clearTimeout(downloadTimeout);
|
clearTimeout(downloadTimeout);
|
||||||
await new Promise<void>((resolve) => {
|
await new Promise<void>((resolve) => {
|
||||||
downloadTimeout = setTimeout(async () => {
|
downloadTimeout = setTimeout(async () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user