From 01c41e052ff18d58e3eb89c7199b800ea1206852 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 18 May 2008 18:49:52 +0300 Subject: Added option parsing and --no-act option. --- do-until | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/do-until b/do-until index 4aea815..6903102 100755 --- a/do-until +++ b/do-until @@ -7,26 +7,43 @@ Lars Wirzenius """ +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__": -- cgit v1.2.1