Improve error message when diff binary is not in PATH

This commit is contained in:
Antoine Pelisse 2020-01-17 16:17:41 -08:00
parent f88f58cb79
commit c1a4cd9c75

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.