mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-18 06:00:45 +00:00
test: move plugin uninstall selection to pure tests
This commit is contained in:
@@ -5,7 +5,6 @@ import type { OpenClawConfig } from "../config/config.js";
|
||||
import { loadConfig, readConfigFileSnapshot, replaceConfigFile } from "../config/config.js";
|
||||
import { resolveStateDir } from "../config/paths.js";
|
||||
import type { PluginInstallRecord } from "../config/types.plugins.js";
|
||||
import { parseClawHubPluginSpec } from "../infra/clawhub.js";
|
||||
import { enablePluginInConfig } from "../plugins/enable.js";
|
||||
import { listMarketplacePlugins } from "../plugins/marketplace.js";
|
||||
import type { PluginRecord } from "../plugins/registry.js";
|
||||
@@ -36,6 +35,7 @@ import {
|
||||
} from "./plugins-command-helpers.js";
|
||||
import { setPluginEnabledInConfig } from "./plugins-config.js";
|
||||
import { runPluginInstallCommand } from "./plugins-install-command.js";
|
||||
import { resolvePluginUninstallId } from "./plugins-uninstall-selection.js";
|
||||
import { runPluginUpdateCommand } from "./plugins-update-command.js";
|
||||
import { promptYesNo } from "./prompt.js";
|
||||
|
||||
@@ -67,44 +67,6 @@ export type PluginUninstallOptions = {
|
||||
dryRun?: boolean;
|
||||
};
|
||||
|
||||
function resolvePluginUninstallId(params: {
|
||||
rawId: string;
|
||||
config: OpenClawConfig;
|
||||
plugins: PluginRecord[];
|
||||
}): { pluginId: string; plugin?: PluginRecord } {
|
||||
const rawId = params.rawId.trim();
|
||||
const plugin = params.plugins.find((entry) => entry.id === rawId || entry.name === rawId);
|
||||
if (plugin) {
|
||||
return { pluginId: plugin.id, plugin };
|
||||
}
|
||||
|
||||
for (const [pluginId, install] of Object.entries(params.config.plugins?.installs ?? {})) {
|
||||
if (
|
||||
install.spec === rawId ||
|
||||
install.resolvedSpec === rawId ||
|
||||
install.resolvedName === rawId ||
|
||||
install.marketplacePlugin === rawId
|
||||
) {
|
||||
return { pluginId };
|
||||
}
|
||||
}
|
||||
|
||||
const requestedClawHub = parseClawHubPluginSpec(rawId);
|
||||
if (requestedClawHub) {
|
||||
for (const [pluginId, install] of Object.entries(params.config.plugins?.installs ?? {})) {
|
||||
const installedClawHubName =
|
||||
install.clawhubPackage ??
|
||||
parseClawHubPluginSpec(install.spec ?? "")?.name ??
|
||||
parseClawHubPluginSpec(install.resolvedSpec ?? "")?.name;
|
||||
if (installedClawHubName === requestedClawHub.name) {
|
||||
return { pluginId };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return { pluginId: rawId };
|
||||
}
|
||||
|
||||
function formatPluginLine(plugin: PluginRecord, verbose = false): string {
|
||||
const status =
|
||||
plugin.status === "loaded"
|
||||
|
||||
Reference in New Issue
Block a user