updated to emit dot directories and files.
[feisty_meow.git] / scripts / buildor / find_in_code.sh
index ed9cb859a11ef042b27a06e8e946298d56df2138..453cfa2da95d854fc26cb99ce17a8c541aad4f25 100644 (file)
@@ -1,4 +1,33 @@
 #!/bin/bash
 seek="$1"; shift
+if [ -z "$seek" ]; then
+  echo This script needs a pattern to look for in the current directory.
+  echo All code files here and in subdirectories will be searched for the
+  echo pattern.
+  exit 1
+fi
+#hmmm: might be nice to support multiple directories...
+#      just need to pass them to find as an array maybe?
+dir="$1"; shift
+if [ -z "$dir" ]; then
+  dir=.
+fi
+
+find "$dir" -type f \( -iname "*" \
+  ! -iname "*.class" \
+  ! -iname "*.dll" \
+  ! -iname "*.exe" \
+  ! -iname "entries" \
+  ! -iname "*.git" \
+  ! -iname "*.gz" \
+  ! -iname "*.jar" \
+  ! -iname "*.lib" \
+  ! -iname "*.obj" \
+  ! -iname "*.svn" \
+  ! -iname "*.svn-base" \
+  ! -iname "*.tar" \
+  ! -iname "*.tmp" \
+  ! -iname "*.zip" \) \
+  -exec echo "\"{}\"" ';' | xargs grep -li "$seek" | grep -v "^\.\|\/\."
+
 
-find . -type f -exec echo "\"{}\"" ';' | grep -v '.svn' | grep -v '.git' | grep -v '.exe' | grep -v '.obj' | grep -v '.class' | grep -v '.dll' | grep -v '.lib' | xargs grep -li "$seek"