| #!/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" |