diff options
-rwxr-xr-x | do-until | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -14,9 +14,12 @@ import time def do_until(options, argv): - while True: + tries = 0 + while options.max_tries == 0 or tries < options.max_tries: + tries += 1 if options.verbose: - sys.stderr.write("do-until: executing: %s\n" % " ".join(argv)) + sys.stderr.write("do-until: attempt #%d: %s\n" % + (tries, " ".join(argv))) if options.no_act: sys.stderr.write("do-until: not running command, pretending it " "works anyway\n") @@ -41,6 +44,9 @@ def parse_args(args): parser.add_option("--sleep", type="int", default=1, metavar="SECS", help="Wait SECS seconds before re-trying a command. " "(Default is %default.)") + parser.add_option("--max-tries", type="int", default=0, metavar="COUNT", + help="Try at most COUNT times, with 0 meaning forever. " + "(Default is %default.)") options, argv = parser.parse_args(args) |