From 5c36ff17385f7f3d29d5d16bf2310a4b068ae77f Mon Sep 17 00:00:00 2001 From: Michael Hollister Date: Mon, 18 Nov 2024 16:31:35 -0600 Subject: [PATCH] Fixed Windows updater with locked directories --- receivers/electron/src/Updater.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/receivers/electron/src/Updater.ts b/receivers/electron/src/Updater.ts index 08aa993..b7327d4 100644 --- a/receivers/electron/src/Updater.ts +++ b/receivers/electron/src/Updater.ts @@ -132,7 +132,14 @@ export class Updater { // Electron runtime sees .asar file as directory and causes errors during copy/remove operations process.noAsar = true - fs.rmSync(dst, { recursive: true, force: true }); + if (process.platform === 'win32') { + // Cannot remove top-level directory since it might still be locked... + fs.rmSync(`${dst}\\*`, { maxRetries: 5, retryDelay: 1000, recursive: true, force: true }); + } + else { + fs.rmSync(dst, { maxRetries: 5, retryDelay: 1000, recursive: true, force: true }); + } + if (process.platform === 'darwin') { // Electron framework libraries break otherwise on Mac fs.cpSync(src, dst, { recursive: true, force: true, verbatimSymlinks: true });