verify aux drivers --verson exit 0

pull/21576/head
Medya Ghazizadeh 2025-09-15 12:50:47 -07:00
parent 574f958887
commit b4b2265a9d
1 changed files with 29 additions and 1 deletions

View File

@ -65,7 +65,35 @@ func InstallOrUpdate(name string, directory string, v semver.Version, interactiv
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