diff options
author | ThibG <thib@sitedethib.com> | 2018-05-10 00:28:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-10 00:28:54 +0200 |
commit | 34142ab29c33104793afe3199f102d84b83b9b57 (patch) | |
tree | afba23a3f169d7445f80ffe555985a295c98f6e1 /bin | |
parent | 143878d9dadd03347c54c9261b9bc754a1d0f5bc (diff) | |
parent | 5d8052e7156c913a551b923c51d508b1ea8837b3 (diff) |
Merge pull request #472 from ThibG/glitch-soc/merge
Merge upstream changes
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/retry | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/bin/retry b/bin/retry new file mode 100755 index 000000000..419ece62a --- /dev/null +++ b/bin/retry @@ -0,0 +1,46 @@ +#!/bin/bash +# https://github.com/travis-ci/travis-build/blob/cbe49ea239ab37b9b38b5b44d287b7ec7a108c16/lib/travis/build/templates/header.sh#L243-L260 +# +# MIT LICENSE +# +# Copyright (c) 2016 Travis CI GmbH <contact@travis-ci.org> +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +retry() { + local result=0 + local count=1 + + while [ $count -le 3 ]; do + if [ $result -ne 0 ]; then + echo -e "\n${ANSI_RED}The command \"$@\" failed. Retrying, $count of 3.${ANSI_RESET}\n" >&2 + fi + + "$@" && { result=0 && break; } || result=$? + count=$(($count + 1)) + sleep 1 + done + + if [ $count -gt 3 ]; then + echo -e "\n${ANSI_RED}The command \"$@\" failed 3 times.${ANSI_RESET}\n" >&2 + fi + + return $result +} + +retry $@ |