Browse Source

set exclude-dir or exclude grep flags only if available

Dmitriy 10 years ago
parent
commit
9385b3ee0a
1 changed files with 17 additions and 6 deletions
  1. 17 6
      lib/grep.zsh

+ 17 - 6
lib/grep.zsh

@@ -3,11 +3,22 @@
 # Examples: http://rubyurl.com/ZXv
 #
 
-# avoid VCS folders
-GREP_OPTIONS=
-for PATTERN in .cvs .git .hg .svn; do
-    GREP_OPTIONS+="--exclude-dir=$PATTERN "
-done
-GREP_OPTIONS+="--color=auto"
+GREP_OPTIONS="--color=auto"
+
+# avoid VCS folders (if the necessary grep flags are available)
+grep-flag-available() {
+    echo | grep $1 "" >/dev/null 2>&1
+}
+if grep-flag-available --exclude-dir=.cvs; then
+    for PATTERN in .cvs .git .hg .svn; do
+        GREP_OPTIONS+=" --exclude-dir=$PATTERN"
+    done
+elif grep-flag-available --exclude=.cvs; then
+    for PATTERN in .cvs .git .hg .svn; do
+        GREP_OPTIONS+=" --exclude=$PATTERN"
+    done
+fi
+unfunction grep-flag-available
+
 export GREP_OPTIONS="$GREP_OPTIONS"
 export GREP_COLOR='1;32'