Motivation

When automating tasks often the requirement comes up to retry commands, for example when network connections are involved and commands do not return successfully immediately or if resources are temporarily not available. Sometimes a simple for-loop in bash is sufficient. Sometimes it is necessary to use additional waiting between retries, sometimes timeouts are desired. Getting all those combinations right can be tedious and error-prone so a generic "retry" command should be available in usual environments so we should provide a retry command to openSUSE distributions.

Goals

  • G1: A "retry" command is submitted to openSUSE:Factory as part of a package

Execution

  • Research existing approaches and distributions
  • Package existing solution or develop alternative on your own
  • Submit package to a devel repository and then openSUSE:Factory and work on feedback

Results

Further details

There are some "best practices" like https://stackoverflow.com/questions/7449772/how-to-retry-a-command-in-bash and https://unix.stackexchange.com/questions/82598/how-do-i-write-a-retry-logic-in-script-to-keep-retrying-to-run-it-upto-5-times . There are also existing commands, like https://github.com/minfrin/retry but it seems to unmaintained and even fails to build so maybe https://github.com/okurz/scripts/blob/master/retry is a better start.

Looking for hackers with the skills:

linux retry bash github coreutils packaging

This project is part of:

Hack Week 21

Activity

  • 11 months ago: cdywan liked this project.
  • 12 months ago: fbonazzi liked this project.
  • 12 months ago: maritawerner liked this project.
  • about 1 year ago: ph03nix liked this project.
  • about 1 year ago: okurz added keyword "bash" to this project.
  • about 1 year ago: okurz added keyword "github" to this project.
  • about 1 year ago: okurz added keyword "coreutils" to this project.
  • about 1 year ago: okurz added keyword "packaging" to this project.
  • about 1 year ago: okurz added keyword "linux" to this project.
  • about 1 year ago: okurz added keyword "retry" to this project.
  • about 1 year ago: okurz started this project.
  • about 1 year ago: okurz originated this project.

  • Comments

    • okurz
      12 months ago by okurz | Reply

      Couldn't wait until hackweek so made it a small weekend project :D Based on what I had in https://github.com/okurz/scripts/tree/master/retry I created https://github.com/okurz/retry including proper README, license, tests, CI, spec file for a package. An according package in OBS https://build.opensuse.org/package/show/home:okurz:retry/retry setup to be triggered from github following https://linuxkamarada.com/en/2019/03/19/integrating-the-open-build-service-with-github/

    • minfrin
      5 months ago by minfrin | Reply

      While alternative implementations are great, please be careful with naming. The “retry” tool is already out the box in Debian, Ubuntu, and Nix, and in the queue for EPEL. It is currently available for Suse via copr. If you create a different tool with the same name but different command line options into opensuse it creates chaos for everyone.

      • okurz
        5 months ago by okurz | Reply

        Thanks for the comment. I researched earlier if I could find existing solutions in various distributions and I had not found the applications you mentioned at that time. Regarding copr, do you mean https://software.opensuse.org/package/python-copr ?

    Similar Projects

    Authenticated hashes for BTRFS by dsterba

    Project Description

    Implement a checksum ...


    Encrypted volumes in elemental-toolkit by flonnegren

    [comment]: # (Please use the project descriptio...


    Improve Qualcomm SOC msm8994/msm8992 kernel mainline support by pvorel

    Project Description

    Due previous hackweek...


    Testing and adding GNU/Linux distributions on Uyuni by juliogonzalezgil

    Join the Gitter channel! [https://gitter.im/uy...


    obs_scm_demo by smithfarm

    Project Description

    For a long time, I ha...


    OSSelot collaboration on legal reviews of community packages by lkocman

    [comment]: # (Please use the project descriptio...


    Expanding e2e tests on Windows self-hosted runners via CI by iguimaraes

    Achievements:

    • Documented all necessary s...


    Give some love to spec-cleaner by kstreitova

    Project Description

    spec-cleaner is an open...


    Update Haskell ecosystem in Tumbleweed to GHC-9.4.4 by psimons

    [comment]: # (Please use the project descriptio...


    Dictu Language by bdowns328

    [comment]: # (Please use the project descriptio...