diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts index e33ae905ad1..c8299581e33 100644 --- a/build/gulpfile.vscode.ts +++ b/build/gulpfile.vscode.ts @@ -43,8 +43,6 @@ const glob = promisify(globCallback); const rcedit = promisify(rceditCallback); const root = path.dirname(import.meta.dirname); const commit = getVersion(root); -const useVersionedUpdate = process.platform === 'win32' && (product as typeof product & { win32VersionedUpdate?: boolean })?.win32VersionedUpdate; -const versionedResourcesFolder = useVersionedUpdate ? commit!.substring(0, 10) : ''; // Build const vscodeEntryPoints = [ @@ -325,6 +323,7 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d const task = () => { const out = sourceFolderName; + const versionedResourcesFolder = util.getVersionedResourcesFolder(platform, commit!); const checksums = computeChecksums(out, [ 'vs/base/parts/sandbox/electron-browser/preload.js', @@ -568,7 +567,7 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d if (platform === 'win32') { result = es.merge(result, gulp.src('resources/win32/bin/code.js', { base: 'resources/win32', allowEmpty: true })); - if (useVersionedUpdate) { + if (versionedResourcesFolder) { result = es.merge(result, gulp.src('resources/win32/versioned/bin/code.cmd', { base: 'resources/win32/versioned' }) .pipe(replace('@@NAME@@', product.nameShort)) .pipe(replace('@@VERSIONFOLDER@@', versionedResourcesFolder)) @@ -646,6 +645,7 @@ function patchWin32DependenciesTask(destinationFolderName: string) { const cwd = path.join(path.dirname(root), destinationFolderName); return async () => { + const versionedResourcesFolder = util.getVersionedResourcesFolder('win32', commit!); const deps = (await Promise.all([ glob('**/*.node', { cwd, ignore: 'extensions/node_modules/@parcel/watcher/**' }), glob('**/rg.exe', { cwd }), diff --git a/build/lib/util.ts b/build/lib/util.ts index e4d01e143c9..4203e6e6530 100644 --- a/build/lib/util.ts +++ b/build/lib/util.ts @@ -381,6 +381,12 @@ export function getElectronVersion(): Record { return { electronVersion, msBuildId }; } +export function getVersionedResourcesFolder(platform: string, commit: string): string { + const productJson = JSON.parse(fs.readFileSync(path.join(root, 'product.json'), 'utf8')); + const useVersionedUpdate = platform === 'win32' && productJson.win32VersionedUpdate; + return useVersionedUpdate ? commit.substring(0, 10) : ''; +} + export class VinylStat implements fs.Stats { readonly dev: number;