From 08eb9ad3d6aaff30d7d8ae33638fb15984238cfd Mon Sep 17 00:00:00 2001 From: Jeff Haynie Date: Thu, 26 Jun 2025 08:13:50 -0700 Subject: [PATCH 1/2] Add project delete in headless mode --- cmd/project.go | 63 ++++++++++++++++++++++------------------ internal/ignore/rules.go | 1 + 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/cmd/project.go b/cmd/project.go index 806b9131..cd1fbf1f 100644 --- a/cmd/project.go +++ b/cmd/project.go @@ -790,7 +790,6 @@ Examples: agentuity project delete agentuity project rm`, Aliases: []string{"rm", "del"}, - Args: cobra.NoArgs, Run: func(cmd *cobra.Command, args []string) { ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGINT, syscall.SIGTERM) defer cancel() @@ -799,43 +798,51 @@ Examples: apiUrl, _, _ := util.GetURLs(logger) orgId, _ := cmd.Flags().GetString("org-id") - var projects []project.ProjectListData - action := func() { - projects = listProjects(ctx, logger, apiUrl, apikey, orgId) - } - tui.ShowSpinner("fetching projects ...", action) - var options []tui.Option - for _, project := range projects { - desc := project.Description - if desc == "" { - desc = emptyProjectDescription - } - options = append(options, tui.Option{ - ID: project.ID, - Text: tui.Bold(tui.PadRight(project.Name, 20, " ")) + tui.Muted(project.ID), - }) - } + var selected []string + if len(args) > 0 { + selected = args + } else { - if len(options) == 0 { - showNoProjects(orgId) - return - } + var projects []project.ProjectListData + action := func() { + projects = listProjects(ctx, logger, apiUrl, apikey, orgId) + } + tui.ShowSpinner("fetching projects ...", action) + var options []tui.Option + for _, project := range projects { + desc := project.Description + if desc == "" { + desc = emptyProjectDescription + } + options = append(options, tui.Option{ + ID: project.ID, + Text: tui.Bold(tui.PadRight(project.Name, 20, " ")) + tui.Muted(project.ID), + }) + } - selected := tui.MultiSelect(logger, "Select one or more projects to delete", "", options) + if len(options) == 0 { + showNoProjects(orgId) + return + } - if len(selected) == 0 { - tui.ShowWarning("no projects selected") - return + selected = tui.MultiSelect(logger, "Select one or more projects to delete", "", options) + + if len(selected) == 0 { + tui.ShowWarning("no projects selected") + return + } } - if !tui.Ask(logger, "Are you sure you want to delete the selected projects?", true) { + force, _ := cmd.Flags().GetBool("force") + + if !force && !tui.Ask(logger, "Are you sure you want to delete the selected projects?", true) { tui.ShowWarning("cancelled") return } var deleted []string - action = func() { + action := func() { var err error deleted, err = project.DeleteProjects(ctx, logger, apiUrl, apikey, selected) if err != nil { @@ -957,5 +964,5 @@ func init() { projectImportCmd.Flags().MarkHidden("org-id") projectDeleteCmd.Flags().String("org-id", "", "Only delete the projects in the specified organization") - + projectDeleteCmd.Flags().Bool("force", false, "Force the removal without confirmation") } diff --git a/internal/ignore/rules.go b/internal/ignore/rules.go index c674a29d..9bd25b6c 100644 --- a/internal/ignore/rules.go +++ b/internal/ignore/rules.go @@ -93,6 +93,7 @@ func (r *Rules) AddDefaults() { r.parseRule("**/.vscode/**") r.parseRule("**/.agentuity-*") r.parseRule("**/biome.json") + r.parseRule("**/.DS_Store") } // Add a rule to the ignore set. From fcd89f0d92262387640734c73a71e4da1a1d8884 Mon Sep 17 00:00:00 2001 From: Jeff Haynie Date: Thu, 26 Jun 2025 08:19:34 -0700 Subject: [PATCH 2/2] remove unused assignment --- cmd/project.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cmd/project.go b/cmd/project.go index cd1fbf1f..99e52473 100644 --- a/cmd/project.go +++ b/cmd/project.go @@ -810,10 +810,6 @@ Examples: tui.ShowSpinner("fetching projects ...", action) var options []tui.Option for _, project := range projects { - desc := project.Description - if desc == "" { - desc = emptyProjectDescription - } options = append(options, tui.Option{ ID: project.ID, Text: tui.Bold(tui.PadRight(project.Name, 20, " ")) + tui.Muted(project.ID),