fix: support windows auto update (#3911)
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const crypto = require('crypto');
|
const crypto = require('crypto');
|
||||||
|
const glob = require('glob');
|
||||||
/* eslint-enable */
|
/* eslint-enable */
|
||||||
|
|
||||||
const yml = {
|
const yml = {
|
||||||
@@ -10,18 +11,10 @@ const yml = {
|
|||||||
files: [],
|
files: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
let fileList = [];
|
const generateYml = async platform => {
|
||||||
// TODO: maybe add `beta` and `stable`
|
const files = glob.sync(`./affine-*-${platform}-*.{exe,zip,dmg,AppImage}`);
|
||||||
const BUILD_TYPE = process.env.BUILD_TYPE || 'canary';
|
|
||||||
|
|
||||||
const generateYml = async () => {
|
files.forEach(fileName => {
|
||||||
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 => {
|
|
||||||
const filePath = path.join(__dirname, './', fileName);
|
const filePath = path.join(__dirname, './', fileName);
|
||||||
try {
|
try {
|
||||||
const fileData = fs.readFileSync(filePath);
|
const fileData = fs.readFileSync(filePath);
|
||||||
@@ -58,6 +51,9 @@ const generateYml = async () => {
|
|||||||
`sha512: ${yml.sha512}\n` +
|
`sha512: ${yml.sha512}\n` +
|
||||||
`releaseDate: ${yml.releaseDate}\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');
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import {
|
|||||||
arch,
|
arch,
|
||||||
buildType,
|
buildType,
|
||||||
iconUrl,
|
iconUrl,
|
||||||
|
icoPath,
|
||||||
platform,
|
platform,
|
||||||
productName,
|
productName,
|
||||||
ROOT,
|
ROOT,
|
||||||
@@ -45,6 +46,7 @@ async function make() {
|
|||||||
appDirectory: appDirectory,
|
appDirectory: appDirectory,
|
||||||
outputDirectory: outPath,
|
outputDirectory: outPath,
|
||||||
iconUrl: iconUrl,
|
iconUrl: iconUrl,
|
||||||
|
setupIcon: icoPath,
|
||||||
loadingGif: path.resolve(ROOT, './resources/icons/affine_installing.gif'),
|
loadingGif: path.resolve(ROOT, './resources/icons/affine_installing.gif'),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { app } from 'electron';
|
|||||||
import { autoUpdater } from 'electron-updater';
|
import { autoUpdater } from 'electron-updater';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
|
|
||||||
import { isMacOS } from '../../shared/utils';
|
import { isMacOS, isWindows } from '../../shared/utils';
|
||||||
import { logger } from '../logger';
|
import { logger } from '../logger';
|
||||||
import { updaterSubjects } from './event';
|
import { updaterSubjects } from './event';
|
||||||
|
|
||||||
@@ -40,8 +40,8 @@ export const registerUpdater = async () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: support auto update on windows and linux
|
// TODO: support auto update on linux
|
||||||
const allowAutoUpdate = isMacOS();
|
const allowAutoUpdate = isMacOS() || isWindows();
|
||||||
|
|
||||||
autoUpdater.logger = logger;
|
autoUpdater.logger = logger;
|
||||||
autoUpdater.autoDownload = false;
|
autoUpdater.autoDownload = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user