From 05738faa189e50b6c0ecc52f0e2dbad6bcedb218 Mon Sep 17 00:00:00 2001 From: Ryo Nihei Date: Sun, 15 Aug 2021 21:10:14 +0900 Subject: Print a stack trace only when a panic occured --- cmd/vartan/compile.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'cmd/vartan/compile.go') diff --git a/cmd/vartan/compile.go b/cmd/vartan/compile.go index 6fdc6a9..9ffd1c9 100644 --- a/cmd/vartan/compile.go +++ b/cmd/vartan/compile.go @@ -45,6 +45,7 @@ func runCompile(cmd *cobra.Command, args []string) (retErr error) { grmPath := *compileFlags.grammar defer func() { + panicked := false v := recover() if v != nil { err, ok := v.(error) @@ -55,6 +56,7 @@ func runCompile(cmd *cobra.Command, args []string) (retErr error) { } retErr = err + panicked = true } if retErr != nil { @@ -71,7 +73,11 @@ func runCompile(cmd *cobra.Command, args []string) (retErr error) { } } - fmt.Fprintf(os.Stderr, "%v:\n%v", retErr, string(debug.Stack())) + if panicked { + fmt.Fprintf(os.Stderr, "%v:\n%v", retErr, string(debug.Stack())) + } else { + fmt.Fprintf(os.Stderr, "%v\n", retErr) + } } }() -- cgit v1.2.3