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 GitHub
parent 4fe5e64e46
commit c3b5b1811c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -864,7 +864,16 @@ func Version() (simple, full string) {
// bi.Main... hopefully.
var module *debug.Module
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
for _, dep := range bi.Deps {
if dep.Path == ImportPath {
@ -872,7 +881,6 @@ func Version() (simple, full string) {
break
}
}
}
if module != nil {
simple, full = module.Version, module.Version
if module.Sum != "" {