cmd: Avoid panic when printing version without build info (#5210)

* version: don't panic if read build info doesn't work

If `debug.ReadBuildInfo()` doesn't return the build information we
should not try to access it. Especially if users only want to build with
the `CustomVersion` we should not assume access to
`debug.ReadBuildInfo()`.

The build environment where this isn't available for me is when building
with bazel.

* exit early
This commit is contained in:
Lukas Vogel 2022-12-19 22:23:45 +01:00 committed by Matthew Holt
parent 6bad878a22
commit 71e27b844b

View file

@ -864,7 +864,16 @@ func Version() (simple, full string) {
// bi.Main... hopefully. // bi.Main... hopefully.
var module *debug.Module var module *debug.Module
bi, ok := debug.ReadBuildInfo() bi, ok := debug.ReadBuildInfo()
if ok { if !ok {
if CustomVersion != "" {
full = CustomVersion
simple = CustomVersion
return
}
full = "unknown"
simple = "unknown"
return
}
// find the Caddy module in the dependency list // find the Caddy module in the dependency list
for _, dep := range bi.Deps { for _, dep := range bi.Deps {
if dep.Path == ImportPath { if dep.Path == ImportPath {
@ -872,7 +881,6 @@ func Version() (simple, full string) {
break break
} }
} }
}
if module != nil { if module != nil {
simple, full = module.Version, module.Version simple, full = module.Version, module.Version
if module.Sum != "" { if module.Sum != "" {