internal/util/retry.go (14 lines of code) (raw):

package util import "time" func RetryExponentialBackoff(attempts int, initial time.Duration, f func() error) error { var err error wait := initial for i := 0; i < attempts; i++ { if err = f(); err == nil { return nil } time.Sleep(wait) wait *= 2 } return err }