commands/helpers/retry_helper.go (18 lines of code) (raw):

package helpers import ( "github.com/Sirupsen/logrus" "time" ) type retryHelper struct { Retry int `long:"retry" description:"How many times to retry upload"` RetryTime time.Duration `long:"retry-time" description:"How long to wait between retries"` } func (r *retryHelper) doRetry(handler func() (bool, error)) (err error) { retry, err := handler() for i := 0; retry && i < r.Retry; i++ { // wait one second to retry logrus.Warningln("Retrying...") time.Sleep(r.RetryTime) retry, err = handler() } return }