check-builtins.sh 596 Bytes
Newer Older
1 2 3 4 5
#!/bin/sh

{
	cat <<\EOF
sayIt:
6
	$(foreach b,$(BUILT_INS),echo XXX $(b:$X=) YYY;)
7 8 9 10 11 12 13 14 15 16
EOF
	cat Makefile
} |
make -f - sayIt 2>/dev/null |
sed -n -e 's/.*XXX \(.*\) YYY.*/\1/p' |
sort |
{
    bad=0
    while read builtin
    do
17 18
	base=$(expr "$builtin" : 'git-\(.*\)')
	x=$(sed -ne 's/.*{ "'$base'", \(cmd_[^, ]*\).*/'$base'	\1/p' git.c)
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
	if test -z "$x"
	then
		echo "$base is builtin but not listed in git.c command list"
		bad=1
	fi
	for sfx in sh perl py
	do
		if test -f "$builtin.$sfx"
		then
			echo "$base is builtin but $builtin.$sfx still exists"
			bad=1
		fi
	done
    done
    exit $bad
}