Skip to content

Commit

Permalink
fix(update): show a custom update dialog when the update has been dow…
Browse files Browse the repository at this point in the history
…nloaded
  • Loading branch information
ritz078 committed Apr 29, 2020
1 parent 9a8149a commit 1f298f0
Show file tree
Hide file tree
Showing 6 changed files with 78 additions and 5 deletions.
3 changes: 3 additions & 0 deletions dev-app-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
provider: github
owner: ritz078
repo: moose
5 changes: 4 additions & 1 deletion electron-builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ files:
filter:
- package.json
- app
publish: github
publish:
provider: github
owner: ritz078
repo: moose
mac:
icon: resources/moose.icns
hardenedRuntime: true
Expand Down
8 changes: 5 additions & 3 deletions main/background.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ import serve from "electron-serve";
import createWindow from "./helpers/createWindow";
import getPort from "get-port";
import { name } from "../package.json";
const { autoUpdater } = require("electron-updater");

import { updateApp } from "./utils/autoUpdate";
// import modules
import { setMenu } from "./modules/menu";
import "./modules/playOnVlc";
Expand All @@ -15,6 +14,7 @@ import { createServer, closeServer } from "./server";
import client from "./utils/webtorrent";
import { cleanup } from "./modules/cast";
import { EventEmitter } from "events";
import unhandled from "electron-unhandled";

EventEmitter.defaultMaxListeners = 0;

Expand All @@ -24,14 +24,16 @@ app.name = name;
let win: BrowserWindow;

if (app.isPackaged) {
unhandled();

serve({ directory: "app" });
} else {
app.setPath("userData", `${app.getPath("userData")} (development)`);
}

async function _createWindow() {
await app.whenReady();
await autoUpdater.checkForUpdatesAndNotify();
await updateApp();

const apiPort = await getPort({
port: getPort.makeRange(3000, 3010),
Expand Down
38 changes: 38 additions & 0 deletions main/utils/autoUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { autoUpdater } from "electron-updater";
import log from "electron-log";
import { dialog, app } from "electron";
import { name } from "../../package.json";

log.transports.file.level = "info";
autoUpdater.logger = log;

export async function updateApp() {
autoUpdater.on("update-downloaded", async ({ version }) => {
const { response } = await dialog.showMessageBox({
message: "App update available",
detail: `Updated v${version} of ${name} downloaded. Restart to install it.`,
buttons: ["Restart", "Remind me later"],
defaultId: 0,
});

if (response === 0) {
setImmediate(() => autoUpdater.quitAndInstall());
}
});

autoUpdater.on("error", async (err) => {
await dialog.showMessageBox({
type: "error",
message: err.message,
});
});

await autoUpdater.checkForUpdates();
}

export function cleanupAutoUpdate() {
autoUpdater.removeAllListeners("update-downloaded");
autoUpdater.removeAllListeners("error");
}

app.on("will-quit", cleanupAutoUpdate);
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@
"chromecasts": "^1.9.1",
"cors": "^2.8.5",
"dlnacasts": "^0.1.0",
"electron-log": "^4.1.1",
"electron-serve": "^1.0.0",
"electron-store": "^5.1.1",
"electron-unhandled": "^3.0.2",
"electron-util": "^0.14.1",
"express": "^4.17.1",
"get-port": "^5.1.1",
Expand Down
27 changes: 26 additions & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2588,6 +2588,11 @@ classnames@^2.2.6:
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==

clean-stack@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==

cli-boxes@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d"
Expand Down Expand Up @@ -3583,11 +3588,16 @@ electron-builder@^22.5.1:
update-notifier "^4.1.0"
yargs "^15.3.1"

electron-is-dev@^1.1.0:
electron-is-dev@^1.0.1, electron-is-dev@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-1.2.0.tgz#2e5cea0a1b3ccf1c86f577cee77363ef55deb05e"
integrity sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==

electron-log@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.1.1.tgz#c57e3d833f723742eb430dc2cdaa6f97d8dbcaff"
integrity sha512-vkK3rNBOciRiinxrsdgg8hyUia+ct8ZMjBblvKjgNk4uHEDjjSyn313NOwv75xOMVIKlfmYzxaN8kR/oGC33aQ==

electron-notarize@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-0.3.0.tgz#b93c606306eac558b250c78ff95273ddb9fedf0a"
Expand Down Expand Up @@ -3633,6 +3643,16 @@ electron-to-chromium@^1.3.413:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.418.tgz#840021191f466b803a873e154113620c9f53cec6"
integrity sha512-i2QrQtHes5fK/F9QGG5XacM5WKEuR322fxTYF9e8O9Gu0mc0WmjjwGpV8c7Htso6Zf2Di18lc3SIPxmMeRFBug==

electron-unhandled@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/electron-unhandled/-/electron-unhandled-3.0.2.tgz#e14a19c830ccf7b6e755191c8e78d23094d25112"
integrity sha512-IIqXnM5eNgV7k5sDA/GZ39ygJbpfF3WTArNGQ1TB4AI6ajQuuVztA0M6Mq9uEpmTh5gz4nR+YsTNWYsHLoM5rw==
dependencies:
clean-stack "^2.1.0"
electron-is-dev "^1.0.1"
ensure-error "^2.0.0"
lodash.debounce "^4.0.8"

electron-updater@^4.2.5:
version "4.2.5"
resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.2.5.tgz#dbced8da6f8c6fc2dc662f2776131f5a49ce018d"
Expand Down Expand Up @@ -3737,6 +3757,11 @@ enhanced-resolve@^4.1.0:
memory-fs "^0.5.0"
tapable "^1.0.0"

ensure-error@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ensure-error/-/ensure-error-2.0.0.tgz#b8359a992601601b3541af9472f6a49d9dca1458"
integrity sha512-1ela4oR5A+TdtFpfiQrZKFUbsOi4JuIYmz2qSGFar6pEdRa54E15mKHVVYrAq1OQhd6b6nVrCaQxQlo6kYwhaw==

entities@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
Expand Down

0 comments on commit 1f298f0

Please sign in to comment.