aboutsummaryrefslogtreecommitdiff
path: root/sh/profile.d/grep.sh
blob: d1ef3ba13f319193bd39706dc01972635c61e92b (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
# Test that we have metadata about what options this system's grep(1) supports,
# and try to create it if not
(
    # Create a directory to hold metadata about grep
    gcd=$HOME/.cache/grep
    if ! [ -d "$gcd" ] ; then
        mkdir -p -- "$gcd" || exit
    fi

    # Write grep(1)'s --help output to a file, even if it's empty
    if ! [ -f "$gcd"/help ] ; then
        grep --help </dev/null >"$gcd"/help 2>/dev/null || exit

        # Iterate through some useful options and create files to show they're
        # available
        set -- binary-files \
               color        \
               devices      \
               directories  \
               exclude      \
               exclude-dir
        for opt ; do
            grep -Eq -- --"$opt" "$gcd"/help || continue
            touch -- "$gcd"/"$opt" || exit
        done
    fi
)