From f9038b02f6faaaaebd865867039967ce82327ed1 Mon Sep 17 00:00:00 2001 From: Marvin Preuss Date: Wed, 1 Sep 2021 13:43:50 +0200 Subject: [PATCH] docs: readme --- README.gif | Bin 0 -> 48095 bytes README.md | 11 +++++++---- don.go | 7 +++++-- 3 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 README.gif diff --git a/README.gif b/README.gif new file mode 100644 index 0000000000000000000000000000000000000000..919190bfdf91fba1b9113289850821bb0630bf0a GIT binary patch literal 48095 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 537fb01..3e226a4 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ Package don is a little helper if you need to check for the readiness of somethi This could be a command to run (like ssh) or a `db.Ping()` for check of the readiness of a database container. +![readme](./README.gif) + ## Use as commandline tool Download the tool from the [download page](https://github.com/xsteadfastx/don/releases) or @@ -52,8 +54,9 @@ if err := don.Ready( return true }, - 10*time.Minute, - 30*time.Second, + 10*time.Minute, // When to timeout completly. + 30*time.Second, // Whats the time between retries. + false, // If you want a progressbar. ); err != nil { log.Error().Err(err).Msg("received error") teardown(pool, resource, tmpState.Name()) @@ -63,14 +66,14 @@ if err := don.Ready( ## Functions -### func [Cmd](/don.go#L69) +### func [Cmd](/don.go#L72) `func Cmd(c string) func() bool` Cmd returns a `func() bool` for working with `don.Ready()`. It executes a command and returns a true if everything looks fine or a false if there was some kind of error. -### func [Ready](/don.go#L87) +### func [Ready](/don.go#L90) `func Ready(f func() bool, timeout time.Duration, retry time.Duration, bar bool) error` diff --git a/don.go b/don.go index 2c7b589..f017574 100644 --- a/don.go +++ b/don.go @@ -2,6 +2,8 @@ // This could be a command to run (like ssh) or a `db.Ping()` for check of the readiness // of a database container. // +// (image/readme) ./README.gif +// // Use as commandline tool // // Download the tool from the (download page) https://github.com/xsteadfastx/don/releases or @@ -42,8 +44,9 @@ // // return true // }, -// 10*time.Minute, -// 30*time.Second, +// 10*time.Minute, // When to timeout completly. +// 30*time.Second, // Whats the time between retries. +// false, // If you want a progressbar. // ); err != nil { // log.Error().Err(err).Msg("received error") // teardown(pool, resource, tmpState.Name())