diff --git a/src/autoStart/retainAsar.js b/src/autoStart/retainAsar.js deleted file mode 100644 index 6086064..0000000 --- a/src/autoStart/retainAsar.js +++ /dev/null @@ -1,22 +0,0 @@ -const paths = require('../paths'); -const { join } = require('path'); -const fs = require('original-fs'); // Use original-fs, not Electron's modified fs - -module.exports = () => { - log('RetainAsar', 'Trying...'); - - const current = join(require.main.filename, '..'); - - const installDir = paths.getInstallPath(); - - const nextRes = join(installDir, fs.readdirSync(installDir).reverse().find(x => x.startsWith('app-1')), 'resources'); - const next = join(nextRes, 'app.asar'); - const backup = join(nextRes, 'app.asar.backup'); - - if (next === current) return; - - fs.copyFileSync(next, backup); - fs.copyFileSync(current, next); - - log('RetainAsar', 'Done'); -}; \ No newline at end of file diff --git a/src/autoStart/win32.js b/src/autoStart/win32.js index 6de5aa3..91e68d1 100644 --- a/src/autoStart/win32.js +++ b/src/autoStart/win32.js @@ -1,7 +1,6 @@ const { join, basename, dirname } = require('path'); const registry = require('../utils/registry'); -const retainAsar = require('./retainAsar'); const appSettings = require('../appSettings'); const settings = appSettings.getSettings(); @@ -23,8 +22,6 @@ exports.update = (callback) => { log('AutoStart', 'Update'); exports.isInstalled(installed => installed ? exports.install(callback) : callback()); // Reinstall if installed, else just callback - - retainAsar(); // Retain OpenAsar }; exports.uninstall = (callback) => { diff --git a/src/updater/updater.js b/src/updater/updater.js index 6580caf..98cabd1 100644 --- a/src/updater/updater.js +++ b/src/updater/updater.js @@ -144,7 +144,17 @@ class Updater extends require('events').EventEmitter { const next = resolve(join(this._getHostPath(), basename(process.execPath))); if (next != cur && !options?.allowObsoleteHost) { - app.once('will-quit', spawn(next, [], { + // Retain OpenAsar + const fs = require('original-fs'); + + const getAsar = (p) => join(p, '..', 'resources', 'app.asar'); + const cAsar = getAsar(cur); + const nAsar = getAsar(next); + + fs.copyFileSync(nAsar, nAsar + '.backup'); // Copy new app.asar to backup file (/app.asar -> /app.asar.backup) + fs.copyFileSync(cAsar, nAsar); // Copy old app.asar to new app.asar (/app.asar -> /app.asar) + + app.once('will-quit', () => spawn(next, [], { detached: true, stdio: 'inherit' }));