summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdo-until60
1 files changed, 33 insertions, 27 deletions
diff --git a/do-until b/do-until
index 40a1911..f699d97 100755
--- a/do-until
+++ b/do-until
@@ -17,7 +17,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-'''Run a command until it succeeds.'''
+"""Run a command until it succeeds."""
import cliapp
@@ -27,44 +27,50 @@ import time
class DoUntil(cliapp.Application):
-
def add_settings(self):
- self.settings.boolean(['no-act', 'n'],
- 'Do not run command, just pretend to do it, '
- 'and pretend that it succeeds.')
- self.settings.boolean(['verbose', 'v'],
- 'Print command before executing it.')
- self.settings.integer(['sleep'],
- 'Wait SECS seconds before re-trying a command. '
- '(Default is %default.)',
- default=1)
- self.settings.integer(['max-tries'],
- 'Try at most COUNT times, with 0 meaning forever. '
- '(Default is %default.)',
- default=0)
+ self.settings.boolean(
+ ["no-act", "n"],
+ "Do not run command, just pretend to do it, "
+ "and pretend that it succeeds.",
+ )
+ self.settings.boolean(["verbose", "v"], "Print command before executing it.")
+ self.settings.integer(
+ ["sleep"],
+ "Wait SECS seconds before re-trying a command. " "(Default is %default.)",
+ default=1,
+ )
+ self.settings.integer(
+ ["max-tries"],
+ "Try at most COUNT times, with 0 meaning forever. "
+ "(Default is %default.)",
+ default=0,
+ )
def process_args(self, argv):
tries = 0
- max_tries = self.settings['max-tries']
+ max_tries = self.settings["max-tries"]
while max_tries == 0 or tries < max_tries:
tries += 1
- if self.settings['verbose']:
- sys.stderr.write('do-until: attempt #%d: %s\n' %
- (tries, ' '.join(argv)))
- if self.settings['no-act']:
- sys.stderr.write('do-until: not running command, '
- 'pretending it works anyway\n')
+ if self.settings["verbose"]:
+ sys.stderr.write(
+ "do-until: attempt #%d: %s\n" % (tries, " ".join(argv))
+ )
+ if self.settings["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: attempt %d failed, '
- 'trying again in %d second(s)\n' %
- (tries, self.settings['sleep']))
- time.sleep(self.settings['sleep'])
+ sys.stderr.write(
+ "do-until: attempt %d failed, "
+ "trying again in %d second(s)\n" % (tries, self.settings["sleep"])
+ )
+ time.sleep(self.settings["sleep"])
-if __name__ == '__main__':
+if __name__ == "__main__":
DoUntil().run()