@@ -4,14 +4,12 @@ import (
4
4
"encoding/json"
5
5
"fmt"
6
6
"os"
7
- "sync/atomic"
8
7
9
8
"cdr.dev/coder-cli/coder-sdk"
10
9
"cdr.dev/coder-cli/internal/clog"
11
10
"cdr.dev/coder-cli/internal/x/xtabwriter"
12
11
"github.com/manifoldco/promptui"
13
12
"github.com/spf13/cobra"
14
- "golang.org/x/sync/errgroup"
15
13
"golang.org/x/xerrors"
16
14
)
17
15
@@ -113,36 +111,27 @@ coder envs --user charlie@coder.com ls -o json \
113
111
return xerrors .Errorf ("new client: %w" , err )
114
112
}
115
113
116
- var egroup errgroup.Group
117
- var fails int32
114
+ egroup := clog .LoggedErrGroup ()
118
115
for _ , envName := range args {
119
116
envName := envName
120
117
egroup .Go (func () error {
121
118
env , err := findEnv (cmd .Context (), client , envName , * user )
122
119
if err != nil {
123
- atomic .AddInt32 (& fails , 1 )
124
- clog .Log (err )
125
- return xerrors .Errorf ("find env by name: %w" , err )
120
+ return err
126
121
}
127
122
128
123
if err = client .StopEnvironment (cmd .Context (), env .ID ); err != nil {
129
- atomic .AddInt32 (& fails , 1 )
130
- err = clog .Fatal (fmt .Sprintf ("stop environment %q" , env .Name ),
124
+ return clog .Error (fmt .Sprintf ("stop environment %q" , env .Name ),
131
125
clog .Causef (err .Error ()), clog .BlankLine ,
132
126
clog .Hintf ("current environment status is %q" , env .LatestStat .ContainerStatus ),
133
127
)
134
- clog .Log (err )
135
- return err
136
128
}
137
129
clog .LogSuccess (fmt .Sprintf ("successfully stopped environment %q" , envName ))
138
130
return nil
139
131
})
140
132
}
141
133
142
- if err = egroup .Wait (); err != nil {
143
- return clog .Fatal (fmt .Sprintf ("%d failure(s) emitted" , fails ))
144
- }
145
- return nil
134
+ return egroup .Wait ()
146
135
},
147
136
}
148
137
}
@@ -353,35 +342,25 @@ func rmEnvsCommand(user *string) *cobra.Command {
353
342
}
354
343
}
355
344
356
- var egroup errgroup.Group
357
- var failures int32
345
+ egroup := clog .LoggedErrGroup ()
358
346
for _ , envName := range args {
359
347
envName := envName
360
348
egroup .Go (func () error {
361
349
env , err := findEnv (ctx , client , envName , * user )
362
350
if err != nil {
363
- atomic .AddInt32 (& failures , 1 )
364
- clog .Log (err )
365
351
return err
366
352
}
367
353
if err = client .DeleteEnvironment (cmd .Context (), env .ID ); err != nil {
368
- atomic .AddInt32 (& failures , 1 )
369
- err = clog .Error (
354
+ return clog .Error (
370
355
fmt .Sprintf (`failed to delete environment "%s"` , env .Name ),
371
356
clog .Causef (err .Error ()),
372
357
)
373
- clog .Log (err )
374
- return err
375
358
}
376
359
clog .LogSuccess (fmt .Sprintf ("deleted environment %q" , env .Name ))
377
360
return nil
378
361
})
379
362
}
380
-
381
- if err = egroup .Wait (); err != nil {
382
- return xerrors .Errorf ("%d failure(s) emitted" , failures )
383
- }
384
- return nil
363
+ return egroup .Wait ()
385
364
},
386
365
}
387
366
cmd .Flags ().BoolVarP (& force , "force" , "f" , false , "force remove the specified environments without prompting first" )
0 commit comments