aboutsummaryrefslogtreecommitdiff
path: root/bash/bashrc.d/grep.bash
diff options
context:
space:
mode:
Diffstat (limited to 'bash/bashrc.d/grep.bash')
-rw-r--r--bash/bashrc.d/grep.bash51
1 files changed, 12 insertions, 39 deletions
diff --git a/bash/bashrc.d/grep.bash b/bash/bashrc.d/grep.bash
index 4560c4ac..559b5e09 100644
--- a/bash/bashrc.d/grep.bash
+++ b/bash/bashrc.d/grep.bash
@@ -1,40 +1,13 @@
-# Return appropriate options for grep
-grepopts() {
-
- # Start with ignoring binary files
- local -a grepopts=(-I)
-
- # Snarf the output of `grep --help` into a variable
- local grephelp=$(grep --help 2>/dev/null)
-
- # If the --exclude option is available, exclude some VCS files
- if [[ $grephelp == *--exclude* ]] ; then
- for exclude_file in .gitignore .gitmodules ; do
- grepopts=("${grepopts[@]}" --exclude="$exclude_file")
- done
- fi
-
- # If the --exclude-dir option is available, exclude some VCS dirs
- if [[ $grephelp == *--exclude-dir* ]] ; then
- for exclude_dir in .cvs .git .hg .svn ; do
- grepopts=("${grepopts[@]}" --exclude-dir="$exclude_dir")
- done
- fi
-
- # If the --color option is available and we have a terminal that supports
- # at least eight colors, add --color=auto to the options
- local colors=$(tput colors 2>/dev/null)
- if [[ $grephelp == *--color* ]] && ((colors >= 8)) ; then
- grepopts=("${grepopts[@]}" --color=auto)
- fi
-
- # Print the options as a single string, space-delimited
- printf %s "${grepopts[*]}"
-}
-
-# Alias grep with those options
-alias grep="grep $(grepopts)"
-
-# Unset helper function
-unset -f grepopts
+# Define function wrapper for grep(1) with --color option if GREP_COLORS is
+# set; checks that color is available in the terminal within the function
+if [[ $GREP_COLORS ]] ; then
+ grep() {
+ local -i colors=$(tput colors 2>/dev/null)
+ if ((colors >= 8)) ; then
+ command grep --color "$@"
+ else
+ command grep "$@"
+ fi
+ }
+fi