From ccb5d19c258a1f4ec87ec7cdc4aedf1f1c7007dc Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Fri, 12 Jul 2019 10:15:27 -0600 Subject: Get module name at runtime, and tidy up modules --- caddy.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'caddy.go') diff --git a/caddy.go b/caddy.go index 41355c9..21f733c 100644 --- a/caddy.go +++ b/caddy.go @@ -209,24 +209,23 @@ func (d *Duration) UnmarshalJSON(b []byte) error { // value will still be returned, but with an // unknown version. func GoModule() *debug.Module { + mod := &debug.Module{Version: "unknown"} bi, ok := debug.ReadBuildInfo() if ok { + mod.Path = bi.Main.Path // The recommended way to build Caddy involves // creating a separate main module, which // TODO: track related Go issue: https://github.com/golang/go/issues/29228 - for _, mod := range bi.Deps { - if mod.Path == goModule { - return mod + // once that issue is fixed, we should just be able to use bi.Main... hopefully. + for _, dep := range bi.Deps { + if dep.Path == mod.Path { + return dep } } } - return &debug.Module{Version: "unknown"} + return mod } -// goModule is the name of this Go module. -// TODO: we should be able to find this at runtime, see https://github.com/golang/go/issues/29228 -const goModule = "github.com/caddyserver/caddy/v2" - // CtxKey is a value type for use with context.WithValue. type CtxKey string -- cgit v1.2.3