mirror of
https://github.com/helmfile/helmfile.git
synced 2026-10-03 16:46:52 +02:00
* fix: Fix `needs` to work for upgrades and when selectors are provided Fixes #919 * Add test framework for `helmfile apply` * Various enhancements and fixes to the DAG support - Make the order of upgrades/deletes more deterministic for testability - Fix the test framework so that we can validate log outputs and errors - Add more test cases for `helmfile apply`, along with bug fixes. - Make sure it fails with an intuitive error when you have non-existent releases referenced from witin "needs"
37 lines
755 B
Go
37 lines
755 B
Go
package helmexec
|
|
|
|
import (
|
|
"fmt"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
func newExitError(helmCmdPath string, exitStatus int, errorMessage string) ExitError {
|
|
return ExitError{
|
|
Message: fmt.Sprintf("%s exited with status %d:\n%s", filepath.Base(helmCmdPath), exitStatus, indent(strings.TrimSpace(errorMessage))),
|
|
Code: exitStatus,
|
|
}
|
|
}
|
|
|
|
func indent(text string) string {
|
|
lines := strings.Split(text, "\n")
|
|
for i := range lines {
|
|
lines[i] = " " + lines[i]
|
|
}
|
|
return strings.Join(lines, "\n")
|
|
}
|
|
|
|
// ExitError is created whenever your shell command exits with a non-zero exit status
|
|
type ExitError struct {
|
|
Message string
|
|
Code int
|
|
}
|
|
|
|
func (e ExitError) Error() string {
|
|
return e.Message
|
|
}
|
|
|
|
func (e ExitError) ExitStatus() int {
|
|
return e.Code
|
|
}
|