summaryrefslogtreecommitdiff
path: root/use-local-vsix.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-07 07:31:59 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-07 07:31:59 +0000
commitb89039c5688ab75fffa3d806119eb053cc326660 (patch)
tree4f81cc86bdbf24a6bf6ea840db44c2ca4b21cf23 /use-local-vsix.patch
parentfa9c0e08315a612470ef72ca5ac658663634f408 (diff)
automatic import of vscodium
Diffstat (limited to 'use-local-vsix.patch')
-rw-r--r--use-local-vsix.patch94
1 files changed, 94 insertions, 0 deletions
diff --git a/use-local-vsix.patch b/use-local-vsix.patch
new file mode 100644
index 0000000..0719d4a
--- /dev/null
+++ b/use-local-vsix.patch
@@ -0,0 +1,94 @@
+--- patches/ext-from-gh.patch
++++ patches/ext-from-gh.patch
+@@ -7,7 +7,7 @@ index 1b0adc4..b595123 100644
+ - const galleryServiceUrl = productjson.extensionsGallery?.serviceUrl;
+ - return (galleryServiceUrl ? ext.fromMarketplace(galleryServiceUrl, extension) : ext.fromGithub(extension))
+ - .pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
+-+ return ext.fromGithub(extension).pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
+++ return ext.fromLocalVsix(extension).pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
+ }
+ diff --git a/build/lib/builtInExtensions.ts b/build/lib/builtInExtensions.ts
+ index fefed43..4ae553e 100644
+@@ -18,5 +18,5 @@ index fefed43..4ae553e 100644
+ - const galleryServiceUrl = productjson.extensionsGallery?.serviceUrl;
+ - return (galleryServiceUrl ? ext.fromMarketplace(galleryServiceUrl, extension) : ext.fromGithub(extension))
+ - .pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
+-+ return ext.fromGithub(extension).pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
+++ return ext.fromLocalVsix(extension).pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
+ }
+
+--- vscode/build/lib/extensions.js
++++ vscode/build/lib/extensions.js
+@@ -4,6 +4,7 @@
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+ Object.defineProperty(exports, "__esModule", { value: true });
++exports.fromLocalVsix = fromLocalVsix;
+ exports.fromMarketplace = fromMarketplace;
+ exports.fromGithub = fromGithub;
+ exports.packageLocalExtensionsStream = packageLocalExtensionsStream;
+@@ -21,6 +22,7 @@ const path = require("path");
+ const File = require("vinyl");
+ const stats_1 = require("./stats");
+ const util2 = require("./util");
++const vinylFs = require("vinyl-fs");
+ const vzip = require('gulp-vinyl-zip');
+ const filter = require("gulp-filter");
+ const rename = require("gulp-rename");
+@@ -193,6 +195,20 @@ function fromLocalNormal(extensionPath) {
+ .catch(err => result.emit('error', err));
+ return result.pipe((0, stats_1.createStatsStream)(path.basename(extensionPath)));
+ }
++function fromLocalVsix({ name, version, metadata }) {
++ const json = require('gulp-json-editor');
++ fancyLog('Processing extension from local directory:', ansiColors.yellow(`${name}@${version}`), '...');
++ const packageJsonFilter = filter('package.json', { restore: true });
++ return vinylFs.src(`${root}/../${name}.${version}.vsix`)
++ .pipe(buffer())
++ .pipe(vzip.src())
++ .pipe(filter('extension/**'))
++ .pipe(rename(p => p.dirname = p.dirname.replace(/^extension\/?/, '')))
++ .pipe(packageJsonFilter)
++ .pipe(buffer())
++ .pipe(json({ __metadata: metadata }))
++ .pipe(packageJsonFilter.restore);
++}
+ const userAgent = 'VSCode Build';
+ const baseHeaders = {
+ 'X-Market-Client-Id': 'VSCode Build',
+
+--- vscode/build/lib/extensions.ts.orig
++++ vscode/build/lib/extensions.ts
+@@ -13,6 +13,7 @@ import { Stream } from 'stream';
+ import * as File from 'vinyl';
+ import { createStatsStream } from './stats';
+ import * as util2 from './util';
++import * as vinylFs from 'vinyl-fs';
+ const vzip = require('gulp-vinyl-zip');
+ import filter = require('gulp-filter');
+ import rename = require('gulp-rename');
+@@ -214,6 +215,24 @@ function fromLocalNormal(extensionPath: string): Stream {
+ return result.pipe(createStatsStream(path.basename(extensionPath)));
+ }
+
++export function fromLocalVsix({ name, version, metadata }: IExtensionDefinition): Stream {
++ const json = require('gulp-json-editor') as typeof import('gulp-json-editor');
++
++ fancyLog('Processing extension from local directory:', ansiColors.yellow(`${name}@${version}`), '...');
++
++ const packageJsonFilter = filter('package.json', { restore: true });
++
++ return vinylFs.src(`${root}/../${name}.${version}.vsix`)
++ .pipe(buffer())
++ .pipe(vzip.src())
++ .pipe(filter('extension/**'))
++ .pipe(rename(p => p.dirname = p.dirname!.replace(/^extension\/?/, '')))
++ .pipe(packageJsonFilter)
++ .pipe(buffer())
++ .pipe(json({ __metadata: metadata }))
++ .pipe(packageJsonFilter.restore);
++}
++
+ const userAgent = 'VSCode Build';
+ const baseHeaders = {
+ 'X-Market-Client-Id': 'VSCode Build',