Skip to content
/ retry Public

Tool to retry a command in case it fails

License

Notifications You must be signed in to change notification settings

homeport/retry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

retry

License Go Report Card Tests Codecov Go Reference Release

Tool to retry a command in case it fails. Prepend retry to your command and it will retry the command in case of an exit code other than zero.

Please note, in case data is piped into the tool, retry will read and buffer any data from standard input and reuse it with every other attempt.

retry

Installation

Homebrew

The homeport/tap has macOS and GNU/Linux pre-built binaries available:

brew install homeport/tap/retry

Pre-built binaries in GitHub

Prebuilt binaries can be downloaded from the GitHub Releases section.

Curl To Shell Convenience Script

There is a convenience script to download the latest release for Linux or macOS if you want to need it simple (you need curl and jq installed on your machine):

curl --silent --location https://raw.githubusercontent.com/homeport/retry/main/hack/download.sh | bash

Contributing

We are happy to have other people contributing to the project. If you decide to do that, here's how to:

  • get Go (retry requires Go version 1.20 or greater)
  • fork the project
  • create a new branch
  • make your changes
  • open a PR.

Git commit messages should be meaningful and follow the rules nicely written down by Chris Beams:

The seven rules of a great Git commit message

  1. Separate subject from body with a blank line
  2. Limit the subject line to 50 characters
  3. Capitalize the subject line
  4. Do not end the subject line with a period
  5. Use the imperative mood in the subject line
  6. Wrap the body at 72 characters
  7. Use the body to explain what and why vs. how

Running test cases and binaries generation

Run test cases:

ginkgo run ./...

Create binaries:

goreleaser build --rm-dist --snapshot

License

Licensed under MIT License