@@ -37,12 +37,15 @@ func envbuilderCmd() serpent.Command {
37
37
Options : o .CLI (),
38
38
Handler : func (inv * serpent.Invocation ) error {
39
39
o .SetDefaults ()
40
- var preExec []func ()
41
- defer func () { // Ensure cleanup in case of error.
42
- for _ , fn := range preExec {
40
+ var preExecs []func ()
41
+ preExec := func () {
42
+ for _ , fn := range preExecs {
43
43
fn ()
44
44
}
45
- }()
45
+ preExecs = nil
46
+ }
47
+ defer preExec () // Ensure cleanup in case of error.
48
+
46
49
o .Logger = log .New (os .Stderr , o .Verbose )
47
50
if o .CoderAgentURL != "" {
48
51
if o .CoderAgentToken == "" {
@@ -55,8 +58,7 @@ func envbuilderCmd() serpent.Command {
55
58
coderLog , closeLogs , err := log .Coder (inv .Context (), u , o .CoderAgentToken )
56
59
if err == nil {
57
60
o .Logger = log .Wrap (o .Logger , coderLog )
58
- defer closeLogs ()
59
- preExec = append (preExec , func () {
61
+ preExecs = append (preExecs , func () {
60
62
o .Logger (log .LevelInfo , "Closing logs" )
61
63
closeLogs ()
62
64
})
@@ -88,7 +90,7 @@ func envbuilderCmd() serpent.Command {
88
90
return nil
89
91
}
90
92
91
- err := envbuilder .Run (inv .Context (), o , preExec ... )
93
+ err := envbuilder .Run (inv .Context (), o , preExec )
92
94
if err != nil {
93
95
o .Logger (log .LevelError , "error: %s" , err )
94
96
}
0 commit comments