Staging
v0.5.1
https://github.com/git/git
Raw File
Tip revision: a2239b79e554bab92abe47d8568cbbfe5c77ce85 authored by Junio C Hamano on 16 October 2005, 00:30:15 UTC
GIT v0.99.8d
Tip revision: a2239b7
git-grep.sh
#!/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"
back to top