1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Fix not being able to install extensions sometimes (#4794)

This commit is contained in:
Sebastian Malton 2022-02-07 09:07:09 -05:00 committed by GitHub
parent 9ea3c94c5a
commit 06ec1b39a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -12,7 +12,7 @@ import { Button } from "../../button";
import type { ExtensionLoader } from "../../../../extensions/extension-loader"; import type { ExtensionLoader } from "../../../../extensions/extension-loader";
import type { LensExtensionId } from "../../../../extensions/lens-extension"; import type { LensExtensionId } from "../../../../extensions/lens-extension";
import React from "react"; import React from "react";
import fse from "fs-extra"; import { remove as removeDir } from "fs-extra";
import { shell } from "electron"; import { shell } from "electron";
import type { InstallRequestValidated } from "./create-temp-files-and-validate/create-temp-files-and-validate"; import type { InstallRequestValidated } from "./create-temp-files-and-validate/create-temp-files-and-validate";
import type { InstallRequest } from "./install-request"; import type { InstallRequest } from "./install-request";
@ -80,17 +80,12 @@ export const attemptInstall =
} }
const extensionFolder = getExtensionDestFolder(name); const extensionFolder = getExtensionDestFolder(name);
const folderExists = await fse.pathExists(extensionFolder); const installedExtension = extensionLoader.getExtension(validatedRequest.id);
if (!folderExists) { if (installedExtension) {
// install extension if not yet exists const { version: oldVersion } = installedExtension.manifest;
await unpackExtension(validatedRequest, dispose);
} else {
const {
manifest: { version: oldVersion },
} = extensionLoader.getExtension(validatedRequest.id);
// otherwise confirmation required (re-install / update) // confirm to uninstall old version before installing new version
const removeNotification = Notifications.info( const removeNotification = Notifications.info(
<div className="InstallingExtensionNotification flex gaps align-center"> <div className="InstallingExtensionNotification flex gaps align-center">
<div className="flex column gaps"> <div className="flex column gaps">
@ -130,5 +125,11 @@ export const attemptInstall =
onClose: dispose, onClose: dispose,
}, },
); );
} else {
// clean up old data if still around
await removeDir(extensionFolder);
// install extension if not yet exists
await unpackExtension(validatedRequest, dispose);
} }
}; };