Merge pull request #87344 from apelisse/improve-missing-diff-binary-error

Improve error message when diff binary is not in PATH
This commit is contained in:
Kubernetes Prow Robot 2020-01-17 23:41:35 -08:00 committed by GitHub
commit 11d4af2558
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -130,7 +130,7 @@ type DiffProgram struct {
genericclioptions.IOStreams
}
func (d *DiffProgram) getCommand(args ...string) exec.Cmd {
func (d *DiffProgram) getCommand(args ...string) (string, exec.Cmd) {
diff := ""
if envDiff := os.Getenv("KUBECTL_EXTERNAL_DIFF"); envDiff != "" {
diff = envDiff
@ -143,12 +143,16 @@ func (d *DiffProgram) getCommand(args ...string) exec.Cmd {
cmd.SetStdout(d.Out)
cmd.SetStderr(d.ErrOut)
return cmd
return diff, cmd
}
// Run runs the detected diff program. `from` and `to` are the directory to diff.
func (d *DiffProgram) Run(from, to string) error {
return d.getCommand(from, to).Run()
diff, cmd := d.getCommand(from, to)
if err := cmd.Run(); err != nil {
return fmt.Errorf("failed to run %q: %v", diff, err)
}
return nil
}
// Printer is used to print an object.