mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-12 09:41:11 +00:00
refactor(cli): reuse install safety overrides
This commit is contained in:
@@ -42,6 +42,12 @@ function resolveInstallMode(force?: boolean): "install" | "update" {
|
||||
return force ? "update" : "install";
|
||||
}
|
||||
|
||||
function resolveInstallSafetyOverrides(overrides: InstallSafetyOverrides): InstallSafetyOverrides {
|
||||
return {
|
||||
dangerouslyForceUnsafeInstall: overrides.dangerouslyForceUnsafeInstall,
|
||||
};
|
||||
}
|
||||
|
||||
async function installBundledPluginSource(params: {
|
||||
config: OpenClawConfig;
|
||||
rawSpec: string;
|
||||
@@ -76,7 +82,7 @@ async function tryInstallHookPackFromLocalPath(params: {
|
||||
config: OpenClawConfig;
|
||||
resolvedPath: string;
|
||||
installMode: "install" | "update";
|
||||
dangerouslyForceUnsafeInstall?: boolean;
|
||||
safetyOverrides?: InstallSafetyOverrides;
|
||||
link?: boolean;
|
||||
}): Promise<{ ok: true } | { ok: false; error: string }> {
|
||||
if (params.link) {
|
||||
@@ -89,7 +95,7 @@ async function tryInstallHookPackFromLocalPath(params: {
|
||||
}
|
||||
|
||||
const probe = await installHooksFromPath({
|
||||
dangerouslyForceUnsafeInstall: params.dangerouslyForceUnsafeInstall,
|
||||
...resolveInstallSafetyOverrides(params.safetyOverrides ?? {}),
|
||||
path: params.resolvedPath,
|
||||
dryRun: true,
|
||||
});
|
||||
@@ -128,7 +134,7 @@ async function tryInstallHookPackFromLocalPath(params: {
|
||||
}
|
||||
|
||||
const result = await installHooksFromPath({
|
||||
dangerouslyForceUnsafeInstall: params.dangerouslyForceUnsafeInstall,
|
||||
...resolveInstallSafetyOverrides(params.safetyOverrides ?? {}),
|
||||
path: params.resolvedPath,
|
||||
mode: params.installMode,
|
||||
logger: createHookPackInstallLogger(),
|
||||
@@ -307,10 +313,11 @@ export async function runPluginInstallCommand(params: {
|
||||
return defaultRuntime.exit(1);
|
||||
}
|
||||
const installMode = resolveInstallMode(opts.force);
|
||||
const safetyOverrides = resolveInstallSafetyOverrides(opts);
|
||||
|
||||
if (opts.marketplace) {
|
||||
const result = await installPluginFromMarketplace({
|
||||
dangerouslyForceUnsafeInstall: opts.dangerouslyForceUnsafeInstall,
|
||||
...safetyOverrides,
|
||||
marketplace: opts.marketplace,
|
||||
mode: installMode,
|
||||
plugin: raw,
|
||||
@@ -344,16 +351,16 @@ export async function runPluginInstallCommand(params: {
|
||||
const existing = cfg.plugins?.load?.paths ?? [];
|
||||
const merged = Array.from(new Set([...existing, resolved]));
|
||||
const probe = await installPluginFromPath({
|
||||
dangerouslyForceUnsafeInstall: opts.dangerouslyForceUnsafeInstall,
|
||||
...safetyOverrides,
|
||||
path: resolved,
|
||||
dryRun: true,
|
||||
});
|
||||
if (!probe.ok) {
|
||||
const hookFallback = await tryInstallHookPackFromLocalPath({
|
||||
config: cfg,
|
||||
dangerouslyForceUnsafeInstall: opts.dangerouslyForceUnsafeInstall,
|
||||
installMode,
|
||||
resolvedPath: resolved,
|
||||
safetyOverrides,
|
||||
link: true,
|
||||
});
|
||||
if (hookFallback.ok) {
|
||||
@@ -389,7 +396,7 @@ export async function runPluginInstallCommand(params: {
|
||||
}
|
||||
|
||||
const result = await installPluginFromPath({
|
||||
dangerouslyForceUnsafeInstall: opts.dangerouslyForceUnsafeInstall,
|
||||
...safetyOverrides,
|
||||
mode: installMode,
|
||||
path: resolved,
|
||||
logger: createPluginInstallLogger(),
|
||||
@@ -397,9 +404,9 @@ export async function runPluginInstallCommand(params: {
|
||||
if (!result.ok) {
|
||||
const hookFallback = await tryInstallHookPackFromLocalPath({
|
||||
config: cfg,
|
||||
dangerouslyForceUnsafeInstall: opts.dangerouslyForceUnsafeInstall,
|
||||
installMode,
|
||||
resolvedPath: resolved,
|
||||
safetyOverrides,
|
||||
});
|
||||
if (hookFallback.ok) {
|
||||
return;
|
||||
@@ -463,7 +470,7 @@ export async function runPluginInstallCommand(params: {
|
||||
const clawhubSpec = parseClawHubPluginSpec(raw);
|
||||
if (clawhubSpec) {
|
||||
const result = await installPluginFromClawHub({
|
||||
dangerouslyForceUnsafeInstall: opts.dangerouslyForceUnsafeInstall,
|
||||
...safetyOverrides,
|
||||
mode: installMode,
|
||||
spec: raw,
|
||||
logger: createPluginInstallLogger(),
|
||||
@@ -499,7 +506,7 @@ export async function runPluginInstallCommand(params: {
|
||||
const preferredClawHubSpec = buildPreferredClawHubSpec(raw);
|
||||
if (preferredClawHubSpec) {
|
||||
const clawhubResult = await installPluginFromClawHub({
|
||||
dangerouslyForceUnsafeInstall: opts.dangerouslyForceUnsafeInstall,
|
||||
...safetyOverrides,
|
||||
mode: installMode,
|
||||
spec: preferredClawHubSpec,
|
||||
logger: createPluginInstallLogger(),
|
||||
@@ -534,7 +541,7 @@ export async function runPluginInstallCommand(params: {
|
||||
}
|
||||
|
||||
const result = await installPluginFromNpmSpec({
|
||||
dangerouslyForceUnsafeInstall: opts.dangerouslyForceUnsafeInstall,
|
||||
...safetyOverrides,
|
||||
mode: installMode,
|
||||
spec: raw,
|
||||
logger: createPluginInstallLogger(),
|
||||
|
||||
Reference in New Issue
Block a user