Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(668)

Unified Diff: tools/push-to-trunk/common_includes.py

Issue 102253002: Add fully automated mode to push-to-trunk script. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rename debug mode to manual mode. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/push-to-trunk/auto_roll.py ('k') | tools/push-to-trunk/push_to_trunk.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/push-to-trunk/common_includes.py
diff --git a/tools/push-to-trunk/common_includes.py b/tools/push-to-trunk/common_includes.py
index ba23314e070bad39fe71a9b7fc4afb2de1c5b987..8d08f30ca4042efedf46273fbe85f6d39940ad62 100644
--- a/tools/push-to-trunk/common_includes.py
+++ b/tools/push-to-trunk/common_includes.py
@@ -229,6 +229,12 @@ class Step(object):
def Config(self, key):
return self._config[key]
+ def IsForced(self):
+ return self._options and self._options.f
+
+ def IsManual(self):
+ return self._options and self._options.m
+
def Run(self):
if self._requires:
self.RestoreIfUnset(self._requires)
@@ -271,7 +277,7 @@ class Step(object):
def ReadLine(self, default=None):
# Don't prompt in forced mode.
- if self._options and self._options.f and default is not None:
+ if not self.IsManual() and default is not None:
print "%s (forced)" % default
return default
else:
@@ -282,8 +288,9 @@ class Step(object):
return self.Retry(cmd, retry_on, [5, 30])
def Editor(self, args):
- return self._side_effect_handler.Command(os.environ["EDITOR"], args,
- pipe=False)
+ if not self.IsForced():
+ return self._side_effect_handler.Command(os.environ["EDITOR"], args,
+ pipe=False)
def ReadURL(self, url, retry_on=None, wait_plan=None):
wait_plan = wait_plan or [3, 60, 600]
@@ -299,9 +306,9 @@ class Step(object):
print "Exiting"
raise Exception(msg)
- def DieInForcedMode(self, msg=""):
- if self._options and self._options.f:
- msg = msg or "Not implemented in forced mode."
+ def DieNoManualMode(self, msg=""):
+ if not self.IsManual():
+ msg = msg or "Only available in manual mode."
self.Die(msg)
def Confirm(self, msg):
@@ -340,11 +347,9 @@ class Step(object):
if not os.path.exists(self._config[DOT_GIT_LOCATION]):
self.Die("This is not a git checkout, this script won't work for you.")
- # TODO(machenbach): Don't use EDITOR in forced mode as soon as script is
- # well tested.
# Cancel if EDITOR is unset or not executable.
- if (not os.environ.get("EDITOR") or
- Command("which", os.environ["EDITOR"]) is None):
+ if (not self.IsForced() and (not os.environ.get("EDITOR") or
+ Command("which", os.environ["EDITOR"]) is None)):
self.Die("Please set your EDITOR environment variable, you'll need it.")
def CommonPrepare(self):
@@ -413,9 +418,7 @@ class Step(object):
answer = ""
while answer != "LGTM":
print "> ",
- # TODO(machenbach): Add default="LGTM" to avoid prompt when script is
- # well tested and when prepare push cl has TBR flag.
- answer = self.ReadLine()
+ answer = self.ReadLine("LGTM" if self.IsForced() else None)
if answer != "LGTM":
print "That was not 'LGTM'."
@@ -423,7 +426,7 @@ class Step(object):
print("Applying the patch \"%s\" failed. Either type \"ABORT<Return>\", "
"or resolve the conflicts, stage *all* touched files with "
"'git add', and type \"RESOLVED<Return>\"")
- self.DieInForcedMode()
+ self.DieNoManualMode()
answer = ""
while answer != "RESOLVED":
if answer == "ABORT":
@@ -449,9 +452,9 @@ class UploadStep(Step):
reviewer = self._options.r
else:
print "Please enter the email address of a V8 reviewer for your patch: ",
- self.DieInForcedMode("A reviewer must be specified in forced mode.")
+ self.DieNoManualMode("A reviewer must be specified in forced mode.")
reviewer = self.ReadLine()
- force_flag = " -f" if self._options.f else ""
+ force_flag = " -f" if not self.IsManual() else ""
args = "cl upload -r \"%s\" --send-mail%s" % (reviewer, force_flag)
# TODO(machenbach): Check output in forced mode. Verify that all required
# base files were uploaded, if not retry.
« no previous file with comments | « tools/push-to-trunk/auto_roll.py ('k') | tools/push-to-trunk/push_to_trunk.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698