diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2015-05-30 23:56:54 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2015-05-30 23:56:54 +1200 |
commit | d20cb23998c672fea3ef344d836102a781517c80 (patch) | |
tree | bbec18590b578f7eee131203bf689e0704602df9 /bash/bashrc.d/grep.bash | |
parent | Remove a few notes about ~/.profile (diff) | |
download | dotfiles-d20cb23998c672fea3ef344d836102a781517c80.tar.gz dotfiles-d20cb23998c672fea3ef344d836102a781517c80.zip |
Overhaul grep(1) and ls(1) options and wrappers
Diffstat (limited to 'bash/bashrc.d/grep.bash')
-rw-r--r-- | bash/bashrc.d/grep.bash | 51 |
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 |