From c3bde1ad003e12e348f2977aba0796243308fda8 Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Wed, 28 Oct 2020 10:16:52 +0200 Subject: [PATCH 1/3] Fix bundled extension install on Linux/AppImage (#1163) Signed-off-by: Jari Kolehmainen --- src/extensions/extension-manager.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/extensions/extension-manager.ts b/src/extensions/extension-manager.ts index c939adde2f..eb4bad08fb 100644 --- a/src/extensions/extension-manager.ts +++ b/src/extensions/extension-manager.ts @@ -25,10 +25,18 @@ export class ExtensionManager { return extensionPackagesRoot() } + get inTreeTargetPath() { + return path.join(this.extensionPackagesRoot, "extensions") + } + get inTreeFolderPath(): string { return path.resolve(__static, "../extensions"); } + get nodeModulesPath(): string { + return path.join(this.extensionPackagesRoot, "node_modules") + } + get localFolderPath(): string { return path.join(os.homedir(), ".k8slens", "extensions"); } @@ -39,7 +47,13 @@ export class ExtensionManager { async load() { logger.info("[EXTENSION-MANAGER] loading extensions from " + this.extensionPackagesRoot) - await fs.ensureDir(path.join(this.extensionPackagesRoot, "node_modules")) + if (this.inTreeFolderPath !== this.inTreeTargetPath) { + // we need to copy in-tree extensions so that we can symlink them properly on "npm install" + await fs.remove(this.inTreeTargetPath) + await fs.ensureDir(this.inTreeTargetPath) + await fs.copy(this.inTreeFolderPath, this.inTreeTargetPath) + } + await fs.ensureDir(this.nodeModulesPath) await fs.ensureDir(this.localFolderPath) return await this.loadExtensions(); } @@ -55,7 +69,7 @@ export class ExtensionManager { id: manifestJson.name, version: manifestJson.version, name: manifestJson.name, - manifestPath: path.join(this.extensionPackagesRoot, "node_modules", manifestJson.name, "package.json"), + manifestPath: path.join(this.nodeModulesPath, manifestJson.name, "package.json"), manifest: manifestJson } } catch (err) { @@ -87,7 +101,7 @@ export class ExtensionManager { async loadBundledExtensions() { const extensions: InstalledExtension[] = [] - const folderPath = this.inTreeFolderPath + const folderPath = this.inTreeTargetPath const bundledExtensions = getBundledExtensions() const paths = await fs.readdir(folderPath); for (const fileName of paths) { From bc97f17565bf299a829c705de9f21b0c7667312b Mon Sep 17 00:00:00 2001 From: Lauri Nevala Date: Wed, 28 Oct 2020 10:59:28 +0200 Subject: [PATCH 2/3] Bind 'this' for setInterval callback (#1165) Signed-off-by: Lauri Nevala --- extensions/telemetry/src/tracker.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/extensions/telemetry/src/tracker.ts b/extensions/telemetry/src/tracker.ts index d5f16334b2..f6ac8c19a4 100644 --- a/extensions/telemetry/src/tracker.ts +++ b/extensions/telemetry/src/tracker.ts @@ -38,8 +38,9 @@ export class Tracker extends Util.Singleton { } this.eventHandlers.push(handler) EventBus.appEventBus.addListener(handler) - - this.reportInterval = setInterval(this.reportData, 60 * 60 * 1000) // report every 1h + this.reportInterval = setInterval(() => { + this.reportData() + }, 60 * 60 * 1000) // report every 1h } stop() { From 40e228c1acd41949a43ca5964f5685a6a0a06381 Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Wed, 28 Oct 2020 12:48:37 +0200 Subject: [PATCH 3/3] Fix npm package missing types (#1167) Signed-off-by: Jari Kolehmainen --- src/extensions/npm/extensions/package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/extensions/npm/extensions/package.json b/src/extensions/npm/extensions/package.json index 373e43007a..8c56c1f6eb 100644 --- a/src/extensions/npm/extensions/package.json +++ b/src/extensions/npm/extensions/package.json @@ -6,6 +6,9 @@ "copyright": "© 2020, Mirantis, Inc.", "license": "MIT", "types": "api.d.ts", + "files": [ + "api.d.ts" + ], "author": { "name": "Mirantis, Inc.", "email": "info@k8slens.dev"