Refactor nag functionality in to NagTimer class.
Add default 30 second nag timer to gclient subprocesses.
BUG=227537
Review URL: https://chromiumcodereview.appspot.com/14826003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@198207 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient_scm.py b/gclient_scm.py
index 26845b8..9ccc76f 100644
--- a/gclient_scm.py
+++ b/gclient_scm.py
@@ -116,6 +116,9 @@
This is the abstraction layer to bind to different SCM.
"""
+ nag_timer = 30
+ nag_max = 3
+
def __init__(self, url=None, root_dir=None, relpath=None):
self.url = url
self._root_dir = root_dir
@@ -195,6 +198,8 @@
gclient_utils.CheckCallAndFilter(
['git', 'diff', merge_base],
cwd=self.checkout_path,
+ nag_timer=self.nag_timer,
+ nag_max=self.nag_max,
filter_fn=GitDiffFilterer(self.relpath).Filter)
def UpdateSubmoduleConfig(self):
@@ -208,6 +213,8 @@
cmd4 = ['git', 'config', 'fetch.recurseSubmodules', 'false']
kwargs = {'cwd': self.checkout_path,
'print_stdout': False,
+ 'nag_timer': self.nag_timer,
+ 'nag_max': self.nag_max,
'filter_fn': lambda x: None}
try:
gclient_utils.CheckCallAndFilter(cmd, **kwargs)
@@ -852,6 +859,8 @@
return subprocess2.check_output(
['git'] + args,
stderr=subprocess2.PIPE,
+ nag_timer=self.nag_timer,
+ nag_max=self.nag_max,
cwd=self.checkout_path).strip()
def _UpdateBranchHeads(self, options, fetch=False):
@@ -879,6 +888,8 @@
def _Run(self, args, options, **kwargs):
kwargs.setdefault('cwd', self.checkout_path)
kwargs.setdefault('print_stdout', True)
+ kwargs.setdefault('nag_timer', self.nag_timer)
+ kwargs.setdefault('nag_max', self.nag_max)
stdout = kwargs.get('stdout', sys.stdout)
stdout.write('\n________ running \'git %s\' in \'%s\'\n' % (
' '.join(args), kwargs['cwd']))
@@ -928,6 +939,8 @@
['svn', 'diff', '-x', '--ignore-eol-style'] + args,
cwd=self.checkout_path,
print_stdout=False,
+ nag_timer=self.nag_timer,
+ nag_max=self.nag_max,
filter_fn=SvnDiffFilterer(self.relpath).Filter)
def update(self, options, args, file_list):
@@ -1225,6 +1238,8 @@
def _Run(self, args, options, **kwargs):
"""Runs a commands that goes to stdout."""
kwargs.setdefault('cwd', self.checkout_path)
+ kwargs.setdefault('nag_timer', self.nag_timer)
+ kwargs.setdefault('nag_max', self.nag_max)
gclient_utils.CheckCallAndFilterAndHeader(['svn'] + args,
always=options.verbose, **kwargs)