func runAction(actionName string, c CommandLine, api libmachine.API) error { hosts, hostsInError := persist.LoadHosts(api, c.Args()) if len(hostsInError) > 0 { errs := []error{} for _, err := range hostsInError { errs = append(errs, err) } return consolidateErrs(errs) } if len(hosts) == 0 { return ErrNoMachineSpecified } if errs := runActionForeachMachine(actionName, hosts); len(errs) > 0 { return consolidateErrs(errs) } for _, h := range hosts { if err := api.Save(h); err != nil { return fmt.Errorf("Error saving host to store: %s", err) } } return nil }
func runAction(actionName string, c CommandLine, api libmachine.API) error { var ( hostsToLoad []string ) // If user did not specify a machine name explicitly, use the 'default' // machine if it exists. This allows short form commands such as // 'docker-machine stop' for convenience. if len(c.Args()) == 0 { target, err := targetHost(c, api) if err != nil { return err } hostsToLoad = []string{target} } else { hostsToLoad = c.Args() } hosts, hostsInError := persist.LoadHosts(api, hostsToLoad) if len(hostsInError) > 0 { errs := []error{} for _, err := range hostsInError { errs = append(errs, err) } return consolidateErrs(errs) } if len(hosts) == 0 { return ErrHostLoad } if errs := runActionForeachMachine(actionName, hosts); len(errs) > 0 { return consolidateErrs(errs) } for _, h := range hosts { if err := api.Save(h); err != nil { return fmt.Errorf("Error saving host to store: %s", err) } } return nil }