mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-21 03:49:57 +00:00
handle legacy plugins in plugin loader
This commit is contained in:
parent
4569126322
commit
cb06a8e493
@ -125,14 +125,20 @@ export async function findPlugins (): Promise<PluginInfo[]> {
|
||||
|
||||
console.log(`Found ${name} in ${pluginDir}`)
|
||||
|
||||
if (foundPlugins.some(x => x.name === name)) {
|
||||
console.info(`Plugin ${packageName} already exists, overriding`)
|
||||
foundPlugins = foundPlugins.filter(x => x.name !== name)
|
||||
const existing = foundPlugins.find(x => x.name === name)
|
||||
if (existing) {
|
||||
if (existing.isLegacy) {
|
||||
console.info(`Plugin ${packageName} already exists, overriding`)
|
||||
foundPlugins = foundPlugins.filter(x => x.name !== name)
|
||||
} else {
|
||||
console.info(`Plugin ${packageName} already exists, skipping`)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
const info = JSON.parse(await fs.readFile(infoPath, { encoding: 'utf-8' }))
|
||||
if (!info.keywords || !(info.keywords.includes('terminus-plugin') || info.keywords.includes('terminus-builtin-plugin') || !info.keywords.includes('tabby-plugin') || info.keywords.includes('tabby-builtin-plugin'))) {
|
||||
if (!info.keywords || !(info.keywords.includes('terminus-plugin') || info.keywords.includes('terminus-builtin-plugin') || info.keywords.includes('tabby-plugin') || info.keywords.includes('tabby-builtin-plugin'))) {
|
||||
continue
|
||||
}
|
||||
let author = info.author
|
||||
@ -141,6 +147,7 @@ export async function findPlugins (): Promise<PluginInfo[]> {
|
||||
name: name,
|
||||
packageName: packageName,
|
||||
isBuiltin: pluginDir === builtinPluginsPath,
|
||||
isLegacy: info.keywords.includes('terminus-plugin') || info.keywords.includes('terminus-builtin-plugin'),
|
||||
version: info.version,
|
||||
description: info.description,
|
||||
author,
|
||||
|
@ -5,6 +5,7 @@ export interface PluginInfo {
|
||||
description: string
|
||||
packageName: string
|
||||
isBuiltin: boolean
|
||||
isLegacy: boolean
|
||||
version: string
|
||||
author: string
|
||||
homepage?: string
|
||||
|
@ -22,7 +22,8 @@ export class PluginManagerService {
|
||||
@Inject(BOOTSTRAP_DATA) bootstrapData: BootstrapData,
|
||||
) {
|
||||
this.logger = log.create('pluginManager')
|
||||
this.installedPlugins = bootstrapData.installedPlugins
|
||||
this.installedPlugins = [...bootstrapData.installedPlugins]
|
||||
this.installedPlugins.sort((a, b) => a.name.localeCompare(b.name))
|
||||
this.userPluginsPath = bootstrapData.userPluginsPath
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user