From e4d9b7cf505e6b2797b89b5a46c9098d98c238f5 Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Wed, 23 Dec 2020 10:30:57 +0200 Subject: [PATCH] ensure symlinked (dev) extensions are installed on boot Signed-off-by: Jari Kolehmainen --- src/extensions/extension-discovery.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/extensions/extension-discovery.ts b/src/extensions/extension-discovery.ts index 0ccfdb5e54..0994f89995 100644 --- a/src/extensions/extension-discovery.ts +++ b/src/extensions/extension-discovery.ts @@ -346,9 +346,15 @@ export class ExtensionDiscovery { async ensureExtensions(): Promise> { const bundledExtensions = await this.loadBundledExtensions(); - await this.installPackages(this.packageJsonPath, bundledExtensions); + await this.installBundledPackages(this.packageJsonPath, bundledExtensions); const userExtensions = await this.loadFromFolder(this.localFolderPath); + + for (const extension of userExtensions) { + if (await fs.pathExists(extension.manifestPath) === false) { + await this.installPackage(extension.absolutePath); + } + } const extensions = bundledExtensions.concat(userExtensions); return this.extensions = new Map(extensions.map(extension => [extension.id, extension])); @@ -357,7 +363,7 @@ export class ExtensionDiscovery { /** * Write package.json to file system and install dependencies. */ - async installPackages(packageJsonPath: string, extensions: InstalledExtension[]) { + async installBundledPackages(packageJsonPath: string, extensions: InstalledExtension[]) { const packagesJson: PackageJson = { dependencies: {} };