From d4fcc277b8860fdfb8e83cc9a3a7cd29614a168f Mon Sep 17 00:00:00 2001 From: Dan Mullineux Date: Tue, 26 May 2026 08:30:48 +0100 Subject: [PATCH] Add chunk sidecar delete command Co-Authored-By: Claude Opus 4.6 --- internal/cmd/sidecar.go | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/internal/cmd/sidecar.go b/internal/cmd/sidecar.go index 682f0fa7..3df77023 100644 --- a/internal/cmd/sidecar.go +++ b/internal/cmd/sidecar.go @@ -36,6 +36,7 @@ func newSidecarCmd() *cobra.Command { cmd.AddCommand(newSidecarListCmd()) cmd.AddCommand(newSidecarCreateCmd()) + cmd.AddCommand(newSidecarDeleteCmd()) cmd.AddCommand(newSidecarExecCmd()) cmd.AddCommand(newSidecarAddSSHKeyCmd()) cmd.AddCommand(newSidecarSSHCmd()) @@ -250,6 +251,51 @@ func newSidecarCreateCmd() *cobra.Command { return cmd } +func newSidecarDeleteCmd() *cobra.Command { + var sidecarID string + + cmd := &cobra.Command{ + Use: "delete", + Short: "Delete a sidecar", + RunE: func(cmd *cobra.Command, _ []string) error { + io := iostream.FromCmd(cmd) + if err := resolveSidecarID(cmd.Context(), &sidecarID); err != nil { + return err + } + insecureStorage := insecureStorageFlag(cmd) + rc, _ := config.Resolve("", "", insecureStorage) + client, err := ensureCircleCIClient(cmd.Context(), cmd, rc, io, tui.PromptHidden) + if err != nil { + return err + } + if err := client.DeleteSidecar(cmd.Context(), sidecarID); err != nil { + if err := notAuthorized("delete sidecars", err); err != nil { + return err + } + return &userError{ + msg: "Could not delete the sidecar.", + suggestion: suggestionNetworkRetry, + err: err, + } + } + io.ErrPrintf("%s\n", ui.Success(fmt.Sprintf("Deleted sidecar %s", sidecarID))) + + if active, lerr := sidecar.LoadActive(cmd.Context()); lerr == nil && active != nil && active.SidecarID == sidecarID { + if cerr := sidecar.ClearActive(cmd.Context()); cerr != nil { + io.ErrPrintf("Warning: could not clear active sidecar state: %v\n", cerr) + } else { + io.ErrPrintln("Active sidecar cleared") + } + } + return nil + }, + } + + cmd.Flags().StringVar(&sidecarID, "sidecar-id", "", "Sidecar ID (defaults to active sidecar)") + + return cmd +} + func newSidecarExecCmd() *cobra.Command { var sidecarID, command string var execArgs []string