logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

retry - Repeat command until a criteria is met, usually success.

Author

       Graham Leggett <minfrin@sharp.fm>

                                                   retry-1.0.5                                          retry(1)

Description

       The tool repeats the given commanduntil the command is successful, backing off with a configurable delay
       between each attempt.

       Retry  captures  stdin into memory as the data is passed to the repeated command, and this captured stdin
       is then replayed should the command be repeated. This makes it possible to  embed  the  retry  tool  into
       shell pipelines.

       Retry  captures  stdout  into  memory, and if the command was successful stdout is passed on to stdout as
       normal, while if the command was repeated stdout is passed to stderr instead. This ensures that output is
       passed to stdout once and once only.

Examples

       In this basic example, we repeat the command forever.

               ~$ retry --until=success -- false
               retry: 'false' returned 1, backing off for 10 seconds and trying again...
               retry: 'false' returned 1, backing off for 10 seconds and trying again...
               retry: 'false' returned 1, backing off for 10 seconds and trying again...

   ^C
       In  this  more  complex  example,  each invocation of curl is retried until curl succeeds, at which point
       stdout is passed once and once only to the next element in the pipeline.

               ~$ retry -- curl --fail http://localhost/entities | \
               jq ... | \
               retry -- curl --fail -X POST http://localhost/resource | \
               logger -t resource-init

       In this example, we stagger each delay exponentially until 64  seconds,  which  is  then  repeated  until
       interrupted.

               ~$ retry --until=success --delay "1,2,4,8,16,32,64" -- false
               retry: false returned 1, backing off for 1 second and trying again...
               retry: false returned 1, backing off for 2 seconds and trying again...
               retry: false returned 1, backing off for 4 seconds and trying again...
               retry: false returned 1, backing off for 8 seconds and trying again...
               retry: false returned 1, backing off for 16 seconds and trying again...
               retry: false returned 1, backing off for 32 seconds and trying again...
               retry: false returned 1, backing off for 64 seconds and trying again...
               retry: false returned 1, backing off for 64 seconds and trying again...
               retry: false returned 1, backing off for 64 seconds and trying again...

   ^C

Name

retry - Repeat command until a criteria is met, usually success.

Options

-dseconds,--delay=seconds
              The number of seconds to back off after  each  attempt.  Multiple  comma  separated  delays  allow
              subsequent delays to be different, with the last delay repeated.

       -mmessage,--message=message
              A message to include in the notification when repeat has backed off. Defaults to the command name.

       -ttimes,--times=times
              The number of times to retry the command. By default we try forever.

       -ucriteria,--until=criteria
              Keep  repeating the commanduntil any one of the comma separated criteria is met.  Options include
              'success', 'true', 'fail', ’false', an integer or a range of integers.  Default is 'success'.

       -wcriteria,--while=criteria
              Keep repeating the commandwhile any one of the comma separated criteria is met.  Options  include
              'success', 'true', 'fail', ’false', an integer or a range of integers.

       -h,--help
              Display this help message.

       -v,--version
              Display the version number.

Return Value

       The retry tool returns the return code from the command being executed, once the criteria is reached.

       If the command was interrupted with a signal, the return code is the signal number plus 128.

       If the command could not be executed, or if the options are invalid, the status 1 is returned.

Synopsis

retry [-v] [-h] [-uuntil] [-wwhile] command ...

See Also