diff options
Diffstat (limited to 'do-until')
-rwxr-xr-x | do-until | 29 |
1 files changed, 23 insertions, 6 deletions
@@ -7,26 +7,43 @@ Lars Wirzenius <liw@liw.fi> """ +import optparse import subprocess import sys import time -def do_until(argv): +def do_until(options, argv): while True: - p = subprocess.Popen(argv) - p.communicate() - if p.returncode == 0: + if options.no_act: + sys.stderr.write("do-until: not running command, pretending it " + "works anyway\n") break + else: + p = subprocess.Popen(argv) + p.communicate() + if p.returncode == 0: + break sys.stderr.write("do-until: command failed, " "trying again in 1 second\n") time.sleep(1) +def parse_args(args): + parser = optparse.OptionParser() + parser.add_option("-n", "--no-act", action="store_true", + help="Do not run command, just pretend to do it, and " + "pretend that it succeeds.") + + options, argv = parser.parse_args(args) + + return options, argv + + def main(): - argv = sys.argv[1:] + options, argv = parse_args(sys.argv[1:]) if argv: - do_until(argv) + do_until(options, argv) if __name__ == "__main__": |