cli/cmd/plugin/cmd_remove.go
Claude dcde802ea2
Some checks failed
Security Scan / Secret Detection (push) Successful in 15s
Security Scan / Go Vulnerability Check (push) Failing after 38s
Security Scan / Dependency & Config Scan (push) Successful in 21s
refactor: update imports from core/go/pkg/cli to core/cli/pkg/cli
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 20:06:55 +00:00

48 lines
941 B
Go

package plugin
import (
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/go/pkg/i18n"
"forge.lthn.ai/core/go/pkg/io"
"forge.lthn.ai/core/go/pkg/plugin"
)
func addRemoveCommand(parent *cli.Command) {
removeCmd := cli.NewCommand(
"remove <name>",
i18n.T("Remove an installed plugin"),
"",
func(cmd *cli.Command, args []string) error {
return runRemove(args[0])
},
)
removeCmd.Args = cli.ExactArgs(1)
parent.AddCommand(removeCmd)
}
func runRemove(name string) error {
basePath, err := pluginBasePath()
if err != nil {
return err
}
registry := plugin.NewRegistry(io.Local, basePath)
if err := registry.Load(); err != nil {
return err
}
if !cli.Confirm("Remove plugin " + name + "?") {
cli.Dim("Cancelled")
return nil
}
installer := plugin.NewInstaller(io.Local, registry)
if err := installer.Remove(name); err != nil {
return err
}
cli.Success("Plugin " + name + " removed")
return nil
}