diff --git a/src/native/updater.ts b/src/native/updater.ts index 111dbde..b0c7147 100644 --- a/src/native/updater.ts +++ b/src/native/updater.ts @@ -62,10 +62,13 @@ async function downloadAndInstall(url: string, version: string) { const installDir = dirname(process.execPath); await new Promise((resolve, reject) => { - exec( - `unzip -o "${zipPath}" -d "${extractDir}" && SUBDIR=$(ls "${extractDir}" | head -1) && cp -rT "${extractDir}/$SUBDIR" "${installDir}"`, - { shell: "/bin/bash" }, - (err) => (err ? reject(err) : resolve()), + const cmd = + process.platform === "win32" + ? `powershell -Command "Expand-Archive -Force -Path '${zipPath}' -DestinationPath '${extractDir}'; $sub = (Get-ChildItem '${extractDir}' | Select-Object -First 1).FullName; Copy-Item -Recurse -Force \\"$sub\\*\\" '${installDir}'"` + : `unzip -o "${zipPath}" -d "${extractDir}" && SUBDIR=$(ls "${extractDir}" | head -1) && cp -rT "${extractDir}/$SUBDIR" "${installDir}"`; + + exec(cmd, { shell: process.platform === "win32" ? undefined : "/bin/bash" }, (err) => + err ? reject(err) : resolve(), ); });