@@ -37,12 +37,15 @@ func envbuilderCmd() serpent.Command {
3737 Options : o .CLI (),
3838 Handler : func (inv * serpent.Invocation ) error {
3939 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 {
4343 fn ()
4444 }
45- }()
45+ preExecs = nil
46+ }
47+ defer preExec () // Ensure cleanup in case of error.
48+
4649 o .Logger = log .New (os .Stderr , o .Verbose )
4750 if o .CoderAgentURL != "" {
4851 if o .CoderAgentToken == "" {
@@ -56,7 +59,7 @@ func envbuilderCmd() serpent.Command {
5659 if err == nil {
5760 o .Logger = log .Wrap (o .Logger , coderLog )
5861 defer closeLogs ()
59- preExec = append (preExec , func () {
62+ preExecs = append (preExecs , func () {
6063 o .Logger (log .LevelInfo , "Closing logs" )
6164 closeLogs ()
6265 })
@@ -88,7 +91,7 @@ func envbuilderCmd() serpent.Command {
8891 return nil
8992 }
9093
91- err := envbuilder .Run (inv .Context (), o , preExec ... )
94+ err := envbuilder .Run (inv .Context (), o , preExec )
9295 if err != nil {
9396 o .Logger (log .LevelError , "error: %s" , err )
9497 }
0 commit comments