X Tutup
Skip to content

Commit e8212a8

Browse files
committed
Print delete failures as they occur
1 parent 1232dba commit e8212a8

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

cmd/ghcs/delete.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"time"
1010

1111
"github.com/AlecAivazis/survey/v2"
12+
"github.com/github/ghcs/cmd/ghcs/output"
1213
"github.com/github/ghcs/internal/api"
1314
"github.com/spf13/cobra"
1415
"golang.org/x/sync/errgroup"
@@ -55,7 +56,8 @@ func newDeleteCmd() *cobra.Command {
5556
if opts.deleteAll && opts.repoFilter != "" {
5657
return errors.New("both --all and --repo is not supported")
5758
}
58-
return delete(context.Background(), opts)
59+
log := output.NewLogger(cmd.OutOrStdout(), cmd.ErrOrStderr(), !opts.isInteractive)
60+
return delete(context.Background(), log, opts)
5961
},
6062
}
6163

@@ -68,7 +70,11 @@ func newDeleteCmd() *cobra.Command {
6870
return deleteCmd
6971
}
7072

71-
func delete(ctx context.Context, opts deleteOptions) error {
73+
type logger interface {
74+
Errorf(format string, v ...interface{}) (int, error)
75+
}
76+
77+
func delete(ctx context.Context, log logger, opts deleteOptions) error {
7278
user, err := opts.apiClient.GetUser(ctx)
7379
if err != nil {
7480
return fmt.Errorf("error getting user: %w", err)
@@ -127,13 +133,17 @@ func delete(ctx context.Context, opts deleteOptions) error {
127133
codespaceName := c.Name
128134
g.Go(func() error {
129135
if err := opts.apiClient.DeleteCodespace(ctx, user.Login, codespaceName); err != nil {
130-
return fmt.Errorf("error deleting codespace: %w", err)
136+
log.Errorf("error deleting codespace %q: %v", codespaceName, err)
137+
return err
131138
}
132139
return nil
133140
})
134141
}
135142

136-
return g.Wait()
143+
if err := g.Wait(); err != nil {
144+
return errors.New("some codespaces failed to delete")
145+
}
146+
return nil
137147
}
138148

139149
func confirmDeletion(p prompter, codespace *api.Codespace, isInteractive bool) (bool, error) {

cmd/ghcs/delete_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ func TestDelete(t *testing.T) {
156156
},
157157
}
158158

159-
err := delete(context.Background(), opts)
159+
err := delete(context.Background(), nil, opts)
160160
if (err != nil) != tt.wantErr {
161161
t.Errorf("delete() error = %v, wantErr %v", err, tt.wantErr)
162162
}

0 commit comments

Comments
 (0)
X Tutup