fix: support windows auto update (#3911)

This commit is contained in:
Peng Xiao
2023-08-23 22:14:37 +08:00
committed by Alex Yang
parent 3ddc76a703
commit d89be5804f
3 changed files with 14 additions and 16 deletions
+9 -13
View File
@@ -3,6 +3,7 @@
const fs = require('fs');
const path = require('path');
const crypto = require('crypto');
const glob = require('glob');
/* eslint-enable */
const yml = {
@@ -10,18 +11,10 @@ const yml = {
files: [],
};
let fileList = [];
// TODO: maybe add `beta` and `stable`
const BUILD_TYPE = process.env.BUILD_TYPE || 'canary';
const generateYml = async platform => {
const files = glob.sync(`./affine-*-${platform}-*.{exe,zip,dmg,AppImage}`);
const generateYml = async () => {
fileList = [
`affine-${BUILD_TYPE}-macos-arm64.dmg`,
`affine-${BUILD_TYPE}-macos-arm64.zip`,
`affine-${BUILD_TYPE}-macos-x64.zip`,
`affine-${BUILD_TYPE}-macos-x64.dmg`,
];
fileList.forEach(fileName => {
files.forEach(fileName => {
const filePath = path.join(__dirname, './', fileName);
try {
const fileData = fs.readFileSync(filePath);
@@ -58,6 +51,9 @@ const generateYml = async () => {
`sha512: ${yml.sha512}\n` +
`releaseDate: ${yml.releaseDate}\n`;
fs.writeFileSync(`./latest-mac.yml`, ymlStr);
const fileName = platform === 'windows' ? 'latest.yml' : 'latest-mac.yml';
fs.writeFileSync(fileName, ymlStr);
};
generateYml();
generateYml('windows');
generateYml('macos');
+2
View File
@@ -7,6 +7,7 @@ import {
arch,
buildType,
iconUrl,
icoPath,
platform,
productName,
ROOT,
@@ -45,6 +46,7 @@ async function make() {
appDirectory: appDirectory,
outputDirectory: outPath,
iconUrl: iconUrl,
setupIcon: icoPath,
loadingGif: path.resolve(ROOT, './resources/icons/affine_installing.gif'),
};
@@ -2,7 +2,7 @@ import { app } from 'electron';
import { autoUpdater } from 'electron-updater';
import { z } from 'zod';
import { isMacOS } from '../../shared/utils';
import { isMacOS, isWindows } from '../../shared/utils';
import { logger } from '../logger';
import { updaterSubjects } from './event';
@@ -40,8 +40,8 @@ export const registerUpdater = async () => {
return;
}
// TODO: support auto update on windows and linux
const allowAutoUpdate = isMacOS();
// TODO: support auto update on linux
const allowAutoUpdate = isMacOS() || isWindows();
autoUpdater.logger = logger;
autoUpdater.autoDownload = false;