blob: 61ff8af5ef835603e22c47a3ed8e5f20409a9de7 [file] [log] [blame]
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import (
"fmt"
"golang.org/x/vuln/internal/govulncheck"
)
const (
noGoModErrorMessage = `govulncheck only works Go with modules. To make your project a module, run go mod init.
See https://go.dev/doc/modules/managing-dependencies for more information.`
noGoSumErrorMessage = `Your module is missing a go.sum file. Try running go mod tidy.
See https://go.dev/doc/modules/managing-dependencies for more information.`
goVersionMismatchErrorMessage = `Loading packages failed, possibly due to a mismatch between the Go version
used to build govulncheck and the Go version on PATH. Consider rebuilding
govulncheck with the current Go version.`
)
var errToMessage = map[error]string{
govulncheck.ErrNoGoMod: noGoModErrorMessage,
govulncheck.ErrNoGoSum: noGoSumErrorMessage,
govulncheck.ErrGoVersionMismatch: goVersionMismatchErrorMessage,
govulncheck.ErrInvalidAnalysisType: "",
govulncheck.ErrInvalidOutputType: "",
}
func messageForError(err error) (out string) {
msg, ok := errToMessage[err]
if !ok {
return ""
}
return fmt.Sprintf("govulncheck: %v\n\n%s", err, msg)
}