mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-12-04 10:34:55 +02:00
40 lines
951 B
Go
40 lines
951 B
Go
package app
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/jesseduffield/generics/slices"
|
|
"github.com/jesseduffield/lazygit/pkg/i18n"
|
|
)
|
|
|
|
type errorMapping struct {
|
|
originalError string
|
|
newError string
|
|
}
|
|
|
|
// knownError takes an error and tells us whether it's an error that we know about where we can print a nicely formatted version of it rather than panicking with a stack trace
|
|
func knownError(tr *i18n.TranslationSet, err error) (string, bool) {
|
|
errorMessage := err.Error()
|
|
|
|
knownErrorMessages := []string{tr.MinGitVersionError}
|
|
|
|
if slices.Contains(knownErrorMessages, errorMessage) {
|
|
return errorMessage, true
|
|
}
|
|
|
|
mappings := []errorMapping{
|
|
{
|
|
originalError: "fatal: not a git repository",
|
|
newError: tr.NotARepository,
|
|
},
|
|
}
|
|
|
|
if mapping, ok := slices.Find(mappings, func(mapping errorMapping) bool {
|
|
return strings.Contains(errorMessage, mapping.originalError)
|
|
}); ok {
|
|
return mapping.newError, true
|
|
}
|
|
|
|
return "", false
|
|
}
|