Skip to main content

This utility is designed to run any shell command and retry if no new line was written tostdout within a specified timeout

Project description

console-retry

This utility is designed to run any shell command and retry if no new line was written to stdout within a specified timeout. Especially useful in CI to retry flaky tests/scripts

The default timeout applies to lines written to stdout of the shell command.

Retry is triggered when:

  • No new line was written to stdout after specified timeout

Retry is not triggered when:

  • The command as a whole takes longer than specified timeout
  • The command returns a non-zero (error) return code

To be a good bash-citizen the return code is mirrors the return code of the subcommand or 1 if the command never finished in the specified timeout.

Example use / tests

console-retry -t 10 "echo abcd ; false" # Immediate fail
console-retry -r 1 "sleep 70" # Fail after default timeout = 60
console-retry -s -r 1 -t 10 "sleep 15" # Should "skip timeout and therefore succeed after 15s"
console-retry -t 10 "echo abcd ; true" # Immediate success
console-retry -p -o abcd -t 10 " sleep 5; echo abc ;sleep 20; false" # Should Complete with error on second try
console-retry -o abcd -t 10 " sleep 5; echo abc ;sleep 20; false" # Should fail after retrymax (no progressive)
console-retry -o abc -t 10 " sleep 5; echo abc ; false"           # Should retry max but never with ok
console-retry -o abc -t 10 ">&2 echo abc ; false"                 # stderr, should retry max
console-retry -o nomatch -t 10 ">&2 echo abc ; false"             # stderr, should fail immediately
console-retry -o abc -t 10 "echo abc ; true"                      # stderr, should succeed immediately
console-retry -o nomatch -t 10 ">&2 echo abc ; sleep 2; echo def; true"  # Output should be: abc \ndef
console-retry -t 10 ">&2 echo abc ; sleep 10; echo def; sleep 10; true" # Staggered output 

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

console_retry-1.0.4.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

console_retry-1.0.4-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file console_retry-1.0.4.tar.gz.

File metadata

  • Download URL: console_retry-1.0.4.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for console_retry-1.0.4.tar.gz
Algorithm Hash digest
SHA256 8f54b4dc9cee80149060a26856f3c93ed019cdc98d8499570bb65c8f66f18ac3
MD5 b3cba07575b9344cf844aa041ea8a282
BLAKE2b-256 a921b2628efb215e7d2aaf8ad1b63a36c26b8525a69dacff177748a7ce96280f

See more details on using hashes here.

File details

Details for the file console_retry-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: console_retry-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for console_retry-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c16e75e517aa6773dbc0e98b8aa642ec43044f865f68de129b5c8becf3aac787
MD5 3c38a447206ebfc22a2b4ef5c7044e2b
BLAKE2b-256 7e1df441462a870ddcb69bd96733eed74891866f7718a68fac58f3aa0eb744aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page