Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
461b2134
Commit
461b2134
authored
Mar 01, 2020
by
Marc Cornellà
Browse files
Merge branch 'grep.zsh-improvements'
Closes #5085 Closes #7451 Closes #7265 Fixes #8444 Closes #8445
parents
498cd722
dc190d87
Changes
1
Hide whitespace changes
Inline
Side-by-side
lib/grep.zsh
View file @
461b2134
# is x grep argument available?
grep-flag-available
()
{
echo
|
grep
$1
""
>
/dev/null 2>&1
}
__GREP_CACHE_FILE
=
"
$ZSH_CACHE_DIR
"
/grep-alias
GREP_OPTIONS
=
""
# See if there's a cache file modified in the last day
__GREP_ALIAS_CACHES
=(
"
$__GREP_CACHE_FILE
"
(
Nm-1
))
if
[[
-z
"
$__GREP_ALIAS_CACHES
"
]]
;
then
grep-flags-available
()
{
command grep
"
$@
"
""
&>/dev/null
<<<
""
}
# color grep results
if
grep-flag-available
--color
=
auto
;
then
GREP_OPTIONS+
=
" --color=auto"
fi
# Ignore these folders (if the necessary grep flags are available)
EXC_FOLDERS
=
"{.bzr,CVS,.git,.hg,.svn,.idea,.tox}"
# ignore VCS folders (if the necessary grep flags are available)
VCS_FOLDERS
=
"{.bzr,CVS,.git,.hg,.svn}"
# Check for --exclude-dir, otherwise check for --exclude. If --exclude
# isn't available, --color won't be either (they were released at the same
# time (v2.5): http://git.savannah.gnu.org/cgit/grep.git/tree/NEWS?id=1236f007
if
grep-flags-available
--color
=
auto
--exclude-dir
=
.cvs
;
then
GREP_OPTIONS
=
"--color=auto --exclude-dir=
$EXC_FOLDERS
"
elif
grep-flags-available
--color
=
auto
--exclude
=
.cvs
;
then
GREP_OPTIONS
=
"--color=auto --exclude=
$EXC_FOLDERS
"
fi
if
grep-flag-available
--exclude-dir
=
.cvs
;
then
GREP_OPTIONS+
=
" --exclude-dir=
$VCS_FOLDERS
"
elif
grep-flag-available
--exclude
=
.cvs
;
then
GREP_OPTIONS+
=
" --exclude=
$VCS_FOLDERS
"
fi
{
if
[[
-n
"
$GREP_OPTIONS
"
]]
;
then
# export grep, egrep and fgrep settings
echo
"alias grep='grep
$GREP_OPTIONS
'"
echo
"alias egrep='egrep
$GREP_OPTIONS
'"
echo
"alias fgrep='fgrep
$GREP_OPTIONS
'"
fi
}
>
"
$__GREP_CACHE_FILE
"
# export grep settings
alias grep
=
"grep
$GREP_OPTIONS
"
# Clean up
unset
GREP_OPTIONS EXC_FOLDERS
unfunction grep-flags-available
fi
# clean up
unset
GREP_OPTIONS
unset
VCS_FOLDERS
unfunction grep-flag-available
source
"
$__GREP_CACHE_FILE
"
unset
__GREP_CACHE_FILE __GREP_ALIAS_CACHES
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment