fix: convert exitErr to commandError if runCommand fails

exitError must not exit the runCommand helper, only commandError
safety check when casting in segment_language
This commit is contained in:
lnu 2021-01-14 21:41:05 +01:00 committed by Jan De Dobbeleer
parent f8b28f01ba
commit 31c77af58f
2 changed files with 9 additions and 3 deletions

View file

@ -170,7 +170,12 @@ func (env *environment) runCommand(command string, args ...string) (string, erro
}
out, err := exec.Command(command, args...).Output()
if err != nil {
return "", err
if exitErr, ok := err.(*exec.ExitError); ok {
return "", &commandError{
err: exitErr.Error(),
exitCode: exitErr.ExitCode(),
}
}
}
return strings.TrimSpace(string(out)), nil
}

View file

@ -77,9 +77,10 @@ func (l *language) getVersion() bool {
l.exitCode = 0
l.version = values["version"]
} else {
errors.As(err, &exerr)
l.exitCode = exerr.exitCode
l.version = ""
if errors.As(err, &exerr) {
l.exitCode = exerr.exitCode
}
}
return true
}