#!/bin/sh

usage() {
	>&2 printf "usage: %s [-s tab|space] [file ...]\n" "$(basename "$0")"
	exit 1
}

is=tab
while
getopts :s: o
do
	case "$o" in
		s)
			test "$OPTARG" != tab && test "$OPTARG" != space && usage
			is="$OPTARG"
			;;
		?)
			usage
			;;
	esac
done

shift "$((OPTIND-1))"

awk -v is="$is" '
BEGIN {
	s=0
}

is=="tab" && /^ [^\*]/ {
	f="%s:%d:%d: Spaces detected\n"
	printf f, FILENAME, FNR, index($0, " ") | "cat 1>&2"
	s=1
}

is=="space" && /^	/ {
	f="%s:%d:%d: Tabs detected\n"
	printf f, FILENAME, FNR, index($0, "	") | "cat 1>&2"
	s=1
}


END {
	exit s
}
' "$@"