Staging
v0.5.1
https://github.com/git/git
Raw File
Tip revision: 089f20dce19711d34f5383ee289a9b1fbd3f3307 authored by Junio C Hamano on 21 September 2005, 07:58:32 UTC
Clarify dual license status of subprocess.py file.
Tip revision: 089f20d
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[@]}" "$pattern"
back to top