verify aux drivers --verson exit 0
parent
574f958887
commit
b4b2265a9d
|
|
@ -65,7 +65,35 @@ func InstallOrUpdate(name string, directory string, v semver.Version, interactiv
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return fixDriverPermissions(name, path, interactive)
|
if err := fixDriverPermissions(name, path, interactive); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return verifyExecutes(name)
|
||||||
|
}
|
||||||
|
|
||||||
|
// verifyExecutes ensures the installed auxiliary driver binary executes successfully.
|
||||||
|
func verifyExecutes(name string) error {
|
||||||
|
if name != driver.KVM2 && name != driver.HyperKit {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
executable := fmt.Sprintf("docker-machine-driver-%s", name)
|
||||||
|
path, err := exec.LookPath(executable)
|
||||||
|
if err != nil {
|
||||||
|
return errors.Wrapf(err, "%s not found in PATH", executable)
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd := exec.Command(path, "version")
|
||||||
|
output, err := cmd.CombinedOutput()
|
||||||
|
if err != nil {
|
||||||
|
details := strings.TrimSpace(string(output))
|
||||||
|
if details != "" {
|
||||||
|
return errors.Wrapf(err, "%s failed:\n%s", strings.Join(cmd.Args, " "), details)
|
||||||
|
}
|
||||||
|
return errors.Wrapf(err, "%s failed", strings.Join(cmd.Args, " "))
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// fixDriverPermissions fixes the permissions on a driver
|
// fixDriverPermissions fixes the permissions on a driver
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue