]>
Commit | Line | Data |
---|---|---|
f22cc3fc | 1 | #!/bin/sh |
5d9d831a LT |
2 | # |
3 | # Copyright (c) Linus Torvalds, 2005 | |
4 | # | |
5 | ||
806f36d4 FK |
6 | USAGE='<option>... <pattern> <path>...' |
7 | SUBDIRECTORY_OK='Yes' | |
8 | . git-sh-setup | |
9 | ||
5d9d831a LT |
10 | pattern= |
11 | flags=() | |
12 | git_flags=() | |
13 | while : ; do | |
14 | case "$1" in | |
15 | --cached|--deleted|--others|--killed|\ | |
16 | --ignored|--exclude=*|\ | |
17 | --exclude-from=*|\--exclude-per-directory=*) | |
18 | git_flags=("${git_flags[@]}" "$1") | |
19 | ;; | |
20 | -e) | |
21 | pattern="$2" | |
22 | shift | |
23 | ;; | |
24 | -A|-B|-C|-D|-d|-f|-m) | |
25 | flags=("${flags[@]}" "$1" "$2") | |
26 | shift | |
27 | ;; | |
28 | --) | |
29 | # The rest are git-ls-files paths (or flags) | |
30 | shift | |
31 | break | |
32 | ;; | |
33 | -*) | |
34 | flags=("${flags[@]}" "$1") | |
35 | ;; | |
36 | *) | |
37 | if [ -z "$pattern" ]; then | |
38 | pattern="$1" | |
39 | shift | |
40 | fi | |
41 | break | |
42 | ;; | |
43 | esac | |
44 | shift | |
f22cc3fc | 45 | done |
c0c35d5e | 46 | [ "$pattern" ] || { |
806f36d4 | 47 | usage |
c0c35d5e | 48 | } |
5d9d831a | 49 | git-ls-files -z "${git_flags[@]}" "$@" | |
c9fc748f | 50 | xargs -0 grep "${flags[@]}" -e "$pattern" |