From 4181323b53ebc2c987ad2bf292fb941e4c77ff62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Mendelski?= Date: Mon, 20 Mar 2023 21:00:15 +0100 Subject: [PATCH] Relativize go sources --- README.md | 34 +++++++++++++++++----------------- errors.go | 9 +++++++++ 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 9df08e9..03c8352 100644 --- a/README.md +++ b/README.md @@ -88,14 +88,14 @@ caused by: bar failed foo failed ./go:32 ./go:10 - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/proc.go:250 - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/asm_amd64.s:1598 + go1.20.2/src/runtime/proc.go:250 + go1.20.2/src/runtime/asm_amd64.s:1598 caused by: bar failed ./go:36 ./go:31 ./go:10 - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/proc.go:250 - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/asm_amd64.s:1598 + go1.20.2/src/runtime/proc.go:250 + go1.20.2/src/runtime/asm_amd64.s:1598 >>> Format: 4 foo failed @@ -103,9 +103,9 @@ foo failed main.foo ./go:10 main.main - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/proc.go:250 + go1.20.2/src/runtime/proc.go:250 runtime.main - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/asm_amd64.s:1598 + go1.20.2/src/runtime/asm_amd64.s:1598 runtime.goexit caused by: bar failed ./go:36 @@ -114,31 +114,31 @@ caused by: bar failed main.foo ./go:10 main.main - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/proc.go:250 + go1.20.2/src/runtime/proc.go:250 runtime.main - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/asm_amd64.s:1598 + go1.20.2/src/runtime/asm_amd64.s:1598 runtime.goexit >>> Format: 5 foo failed - /Users/mendlik/Development/go/go-errors/samples/samples.go:32 + /samples/samples.go:32 main.foo - /Users/mendlik/Development/go/go-errors/samples/samples.go:10 + /samples/samples.go:10 main.main - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/proc.go:250 + go1.20.2/src/runtime/proc.go:250 runtime.main - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/asm_amd64.s:1598 + go1.20.2/src/runtime/asm_amd64.s:1598 runtime.goexit caused by: bar failed - /Users/mendlik/Development/go/go-errors/samples/samples.go:36 + /samples/samples.go:36 main.bar - /Users/mendlik/Development/go/go-errors/samples/samples.go:31 + /samples/samples.go:31 main.foo - /Users/mendlik/Development/go/go-errors/samples/samples.go:10 + /samples/samples.go:10 main.main - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/proc.go:250 + go1.20.2/src/runtime/proc.go:250 runtime.main - /Users/mendlik/.sdkvm/sdk/go/1.20.2/src/runtime/asm_amd64.s:1598 + go1.20.2/src/runtime/asm_amd64.s:1598 runtime.goexit >>> Format go error: diff --git a/errors.go b/errors.go index cf753f5..d43ef1c 100644 --- a/errors.go +++ b/errors.go @@ -19,6 +19,8 @@ var ( BasePath = "" BaseCachePath = "" BaseModule = "" + BaseGoSrcPath = "" + BaseGoSrcToken = "" MaxStackDepth = 32 MaxPrintStackFrames = 5 MaxPrintCauses = 5 @@ -42,6 +44,8 @@ func init() { BasePath = "**/" + path.Base(BaseModule) } BaseCachePath = "**/pkg/mod" + BaseGoSrcPath = runtime.GOROOT() + BaseGoSrcToken = runtime.Version() } type stackTracer interface { @@ -293,6 +297,11 @@ func (f Frame) RelFile() string { return name[len(BaseCachePath)+1:] } } + if BaseGoSrcPath != "" { + if strings.HasPrefix(name, BaseGoSrcPath) { + return fmt.Sprintf("%s/%s", BaseGoSrcToken, name[len(BaseGoSrcPath)+1:]) + } + } return name }