Skip to content

Commit

Permalink
Remove defers from main() to stop suppressing panics (#1851)
Browse files Browse the repository at this point in the history
Signed-off-by: Dave Henderson <[email protected]>
  • Loading branch information
hairyhenderson authored Oct 21, 2023
1 parent 0bc5ad4 commit a296ab9
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions cmd/gomplate/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,15 @@ import (
)

func main() {
exitCode := 0
// defer the exit first, so it executes last, to let the deferred cancel run
defer func() { os.Exit(exitCode) }()
if err := run(); err != nil {
os.Exit(1)
}
}

func run() error {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()

// need to strip os.Args[0] so we only pass the actual flags
err := cmd.Main(ctx, os.Args[1:], os.Stdin, os.Stdout, os.Stderr)
if err != nil {
exitCode = 1
}
return cmd.Main(ctx, os.Args[1:], os.Stdin, os.Stdout, os.Stderr)
}

0 comments on commit a296ab9

Please sign in to comment.