Auto merge of #5842 - dhananjay92:i5838, r=Manishearth

Solves Issue #5838.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5842)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2015-04-25 12:50:19 -05:00
commit ef536372cd

View file

@ -1,5 +1,5 @@
from __future__ import print_function, unicode_literals
from os import path, getcwd
from os import path, getcwd, listdir
import subprocess
@ -76,3 +76,25 @@ class MachCommands(CommandBase):
category='devenv')
def rust_root(self):
print(self.config["tools"]["rust-root"])
@Command('grep',
description='`git grep` for selected directories.',
category='devenv')
@CommandArgument(
'params', default=None, nargs='...',
help="Command-line arguments to be passed through to `git grep`")
def grep(self, params):
if not params:
params = []
# get all directories under tests/
tests_dirs = listdir('tests')
# Remove 'wpt' from obtained dir list
tests_dirs = filter(lambda dir: dir != 'wpt', tests_dirs)
# Set of directories in project root
root_dirs = ['components', 'ports', 'python', 'etc', 'resources']
# Generate absolute paths for directories in tests/ and project-root/
tests_dirs_abs = [path.join(self.context.topdir, 'tests', s) for s in tests_dirs]
root_dirs_abs = [path.join(self.context.topdir, s) for s in root_dirs]
# Absolute paths for all directories to be considered
grep_paths = root_dirs_abs + tests_dirs_abs
return subprocess.call(["git"] + ["grep"] + params + ['--'] + grep_paths, env=self.build_env())