Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devbot/command.py
diff options
context:
space:
mode:
Diffstat (limited to 'devbot/command.py')
-rw-r--r--devbot/command.py24
1 files changed, 19 insertions, 5 deletions
diff --git a/devbot/command.py b/devbot/command.py
index 9a39a06..9a8b5e2 100644
--- a/devbot/command.py
+++ b/devbot/command.py
@@ -1,12 +1,26 @@
import subprocess
+import time
-def run(args, test=False):
+def run(args, test=False, retry=0):
print " ".join(args)
- if not test:
- subprocess.check_call(args)
+ if test:
+ return
-def run_with_sudo(args, test=False):
+ tries = 0
+ while tries < retry + 1:
+ try:
+ tries = tries + 1
+ subprocess.check_call(args)
+ return
+ except subprocess.CalledProcessError, e:
+ if tries < retry + 1:
+ print "Retrying (attempt %d) in 1 minute" % tries
+ time.sleep(60)
+ else:
+ raise e
+
+def run_with_sudo(args, test=False, retry=0):
args_with_sudo = ["sudo"]
args_with_sudo.extend(args)
- run(args_with_sudo, test=test)
+ run(args_with_sudo, test=test, retry=retry)