aboutsummaryrefslogtreecommitdiff
path: root/sh/profile.d/grep.sh
blob: 444adb16839be53e6c183cfd2638e24fed18cf79 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Store grep(1)'s --help output in a variable
grep_help=$(grep --help 2>/dev/null)

# Use GREP_COLORS to add color output to grep(1) if option available
case $grep_help in
    *--color*)
        GREP_COLORS='ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
        export GREP_COLORS
        ;;
esac

# Use GREP_OPTIONS to add some useful options to grep(1) calls if applicable
GREP_OPTIONS=
case $grep_help in
    *--binary-files*)
        GREP_OPTIONS=${GREP_OPTIONS:+$GREP_OPTIONS }'--binary-files=without-match'
        ;;
esac
case $grep_help in
    *--exclude*)
        for exclude in .gitignore .gitmodules ; do
            GREP_OPTIONS=${GREP_OPTIONS:+$GREP_OPTIONS }'--exclude='$exclude
        done
        unset -v exclude
        ;;
esac
case $grep_help in
    *--exclude-dir*)
        for exclude_dir in .cvs .git .hg .svn ; do
            GREP_OPTIONS=${GREP_OPTIONS:+$GREP_OPTIONS }'--exclude-dir='$exclude_dir
        done
        unset -v exclude_dir
        ;;
esac

# We're done parsing grep(1)'s --help output now
unset -v grep_help

# Export the grep(1) options if we decided on any
if [ -n "$GREP_OPTIONS" ] ; then
    export GREP_OPTIONS
fi