43 lines
656 B
43 lines
656 B
#!/bin/sh |
|
# |
|
# Copyright (c) Linus Torvalds, 2005 |
|
# |
|
|
|
pattern= |
|
flags=() |
|
git_flags=() |
|
while : ; do |
|
case "$1" in |
|
--cached|--deleted|--others|--killed|\ |
|
--ignored|--exclude=*|\ |
|
--exclude-from=*|\--exclude-per-directory=*) |
|
git_flags=("${git_flags[@]}" "$1") |
|
;; |
|
-e) |
|
pattern="$2" |
|
shift |
|
;; |
|
-A|-B|-C|-D|-d|-f|-m) |
|
flags=("${flags[@]}" "$1" "$2") |
|
shift |
|
;; |
|
--) |
|
# The rest are git-ls-files paths (or flags) |
|
shift |
|
break |
|
;; |
|
-*) |
|
flags=("${flags[@]}" "$1") |
|
;; |
|
*) |
|
if [ -z "$pattern" ]; then |
|
pattern="$1" |
|
shift |
|
fi |
|
break |
|
;; |
|
esac |
|
shift |
|
done |
|
git-ls-files -z "${git_flags[@]}" "$@" | |
|
xargs -0 grep "${flags[@]}" -e "$pattern"
|
|
|