Fix issue with Squirrel.Windows install/update handler not firing properly

This commit is contained in:
Michael Telatynski 2021-07-27 11:47:44 +01:00
parent 15600584ec
commit 984a98b9df
2 changed files with 8 additions and 10 deletions

View file

@ -17,12 +17,8 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
// Squirrel on windows starts the app with various flags
// as hooks to tell us when we've been installed/uninstalled
// etc.
import { checkSquirrelHooks } from "./squirrelhooks";
if (checkSquirrelHooks()) process.exit(1);
// Squirrel on windows starts the app with various flags as hooks to tell us when we've been installed/uninstalled etc.
import "./squirrelhooks";
import { app, ipcMain, powerSaveBlocker, BrowserWindow, Menu, autoUpdater, protocol, dialog } from "electron";
import AutoLaunch from "auto-launch";
import path from "path";

View file

@ -33,15 +33,13 @@ function runUpdateExe(args: string[]): Promise<void> {
});
}
export function checkSquirrelHooks(): boolean {
function checkSquirrelHooks(): boolean {
if (process.platform !== 'win32') return false;
const cmd = process.argv[1];
const target = path.basename(process.execPath);
if (cmd === '--squirrel-install' || cmd === '--squirrel-updated') {
Promise.resolve().then(() => {
return runUpdateExe(['--createShortcut=' + target]);
}).then(() => {
runUpdateExe(['--createShortcut=' + target]).then(() => {
// remove the old 'Riot' shortcuts, if they exist (update.exe --removeShortcut doesn't work
// because it always uses the name of the product as the name of the shortcut: the only variable
// is what executable you're linking to)
@ -82,3 +80,7 @@ export function checkSquirrelHooks(): boolean {
}
return false;
}
if (checkSquirrelHooks()) {
process.exit(1);
}