From 3a253fe7425e512197d37ea0b5be9afc31b356eb Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 14 Jul 2020 19:05:28 +0100 Subject: [PATCH] Some terribleness to make updating work on windows Squirrel doesn't handle the executable changing name, as hopefully explained in comments --- build/rebrand_stub/rebrand_stub.c | 51 ++++++++++++++++++++++++++++ build/rebrand_stub/rebrand_stub.exe | Bin 0 -> 120832 bytes package.json | 3 +- scripts/electron_afterPack.js | 15 ++++++++ src/squirrelhooks.js | 34 +++++++++++++++---- 5 files changed, 96 insertions(+), 7 deletions(-) create mode 100644 build/rebrand_stub/rebrand_stub.c create mode 100644 build/rebrand_stub/rebrand_stub.exe create mode 100644 scripts/electron_afterPack.js diff --git a/build/rebrand_stub/rebrand_stub.c b/build/rebrand_stub/rebrand_stub.c new file mode 100644 index 0000000..fba92fd --- /dev/null +++ b/build/rebrand_stub/rebrand_stub.c @@ -0,0 +1,51 @@ +#include +#include +#include +#include + +/* + * This just runs 'Element (Riot).exe' with the same args as + * this process was invoked with. This gets around the fact that + * squirrel always tries to run an executable with the same name, + * so fails to restart if the app's name has changed. + */ +void _tmain( int argc, TCHAR *argv[] ) +{ + LPSTR myCmdLine = GetCommandLineA(); + char cmdLine[32767]; + + LPSTR cmdLinePos = cmdLine; + LPSTR toRun = "\"Element (Riot).exe\" "; + strncpy(cmdLinePos, toRun, strlen(toRun)); + cmdLinePos += strlen(toRun); + + if (myCmdLine[0] == '"') ++myCmdLine; + myCmdLine += strlen(argv[0]); + if (myCmdLine[0] == '"') ++myCmdLine; + if (myCmdLine[0] == ' ') ++myCmdLine; + + strncpy(cmdLinePos, myCmdLine, (cmdLine + 32767) - cmdLinePos); + + STARTUPINFO si; + PROCESS_INFORMATION pi; + + ZeroMemory(&si, sizeof(si)); + si.cb = sizeof(si); + ZeroMemory(&pi, sizeof(pi)); + + if (!CreateProcess(NULL, + cmdLine, // Command line + NULL, // Process handle not inheritable + NULL, // Thread handle not inheritable + FALSE, // Set handle inheritance to FALSE + 0, // No creation flags + NULL, // Use parent's environment block + NULL, // Use parent's starting directory + &si, // Pointer to STARTUPINFO structure + &pi ) // Pointer to PROCESS_INFORMATION structure + ) + { + printf("CreateProcess failed (%d).\n", GetLastError()); + return; + } +} diff --git a/build/rebrand_stub/rebrand_stub.exe b/build/rebrand_stub/rebrand_stub.exe new file mode 100644 index 0000000000000000000000000000000000000000..eb8a12499dea3384256305281e9520d5fe0d076f GIT binary patch literal 120832 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 xQv{opyx`B}&L%Rj7jTykhX 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 { + spawn(updateExe, args, { + detached: true, + }).on('close', resolve); + }); } function checkSquirrelHooks() { @@ -36,10 +39,29 @@ function checkSquirrelHooks() { const cmd = process.argv[1]; const target = path.basename(process.execPath); if (cmd === '--squirrel-install' || cmd === '--squirrel-updated') { - runUpdateExe(['--createShortcut=' + target + ''], app.quit); + Promise.resolve().then(() => { + return 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) + const appDataDir = process.env.APPDATA; + if (!appDataDir) return; + const startMenuDir = path.join( + appDataDir, 'Microsoft', 'Windows', 'Start Menu', 'Programs', 'New Vector Ltd', + ); + return fsProm.rmdir(startMenuDir, { recursive: true }); + }).then(() => { + const oldDesktopShortcut = path.join(app.getPath('desktop'), 'Riot.lnk'); + return fsProm.unlink(oldDesktopShortcut).catch(() => {}); + }).then(() => { + app.quit(); + }); return true; } else if (cmd === '--squirrel-uninstall') { - runUpdateExe(['--removeShortcut=' + target + ''], app.quit); + runUpdateExe(['--removeShortcut=' + target]).then(() => { + app.quit(); + }); return true; } else if (cmd === '--squirrel-obsolete') { app.quit();