#!/bin/bash

if [ "$#" -lt 2 ]; then
    name=`basename "$0"`
	echo >&2 "usage: $name dir grep-args"
    echo >&2 "grep files recursively, excluding the files you don't want to grep.  edit to tune!"
    echo >&2 "e.g.:"
    echo >&2 "  $name /etc/ -i cow"
    echo >&2 "  LC_ALL=C $name /etc/ -i --color -e cow -e 'ab.*cd.*ef' 2>/dev/null"
    exit 1
fi

dir="$1" ; shift

export LC_ALL=C
find "$dir" \( -path '*/.*' -or -name 'node_modules' -or -name 'coverage' -or -name 'dist' -or -name '__sapper__' -or -name '__pycache__' \) -prune -or -type f \
  \! \( -name '*.log' -or -name '*.log.*' -or -path '*/doc/*' -or -path '*/CVS/*' -or -path '*/debian/*' -or -name '*-autosave*' -or -name '*.bak' -or -name '*.pyc' -or -path '*obsolete*' -or -name '*.gz' -or -name '*.gdb' -or -path '*/build/*' -or -path '*/database/test/*' \) -print |
  sort |
  xargs -d $'\n' --no-run-if-empty grep -I "$@" | short
