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

Unified Diff: gclient.py

Issue 11270056: Add gclient grep for git repos (Closed) Base URL: https://git.chromium.org/chromium/tools/depot_tools.git@master
Patch Set: Created 8 years, 1 month 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gclient.py
diff --git a/gclient.py b/gclient.py
index 40a5e0d76b69b1848e0fc15ee83db90e40c9260d..53b419d7d1a030bd78a9390786032cc98a0b4ca7 100644
--- a/gclient.py
+++ b/gclient.py
@@ -1261,8 +1261,32 @@ def CMDfetch(parser, args):
Completely git-specific. Simply runs 'git fetch [args ...]' for each module.
"""
(options, args) = parser.parse_args(args)
- args = ['-j%d' % options.jobs, '-s', 'git', 'git', 'fetch'] + args
- return CMDrecurse(parser, args)
+ return CMDrecurse(Parser(), [
+ '--jobs=%d' % options.jobs, '--scm=git', 'git', 'fetch'] + args)
+
+
+def CMDgrep(parser, args):
+ """Greps through git repos managed by gclient.
+
+Runs 'git grep [args...]' for each module.
+"""
+ if not args:
+ print 'Usage [-j <N>] git-grep args...'
M-A Ruel 2012/11/05 17:39:05 print >> sys.stderr, 'Usage: git cl grep [-j <N>]
Isaac (away) 2012/11/07 07:13:53 Done.
+ return 1
+
+ # We can't use optparse because it will try to parse arguments sent
M-A Ruel 2012/11/05 13:51:14 You can, you need to use parser.disable_interspers
Isaac (away) 2012/11/05 17:09:53 That does not allow users to pass arguments to git
M-A Ruel 2012/11/05 17:39:05 Ok, I always used -- naturally but I agree it's us
Isaac (away) 2012/11/07 07:13:53 SG. Some git commands also use -- so prefer not t
+ # to git grep and throw an error. :-(
+ if re.match(r'-j\d+|--jobs=\d+', args[0]):
+ jobs_arg, args = args[:1], args[1:]
+ elif re.match(r'-j|--jobs', args[0]):
+ jobs_arg, args = args[:2], args[2:]
+ else:
+ jobs_arg = ['--jobs=1']
+
M-A Ruel 2012/11/05 17:39:05 You also lose support for -h and --help. But it's
Isaac (away) 2012/11/07 07:13:53 I fixed this w/ a regex -- see new review.
+ return CMDrecurse(
+ parser,
+ jobs_arg + ['--ignore', '--scm=git', 'git', 'grep', '--color=Always']
+ + args)
@attr('usage', '[url] [safesync url]')
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698