Add "locate" command to movein
authorStuart Prescott <stuart+debian@nanonanonano.net>
Wed, 12 Oct 2011 11:59:04 +0000 (12:59 +0100)
committerStuart Prescott <stuart+debian@nanonanonano.net>
Wed, 12 Oct 2011 11:59:04 +0000 (12:59 +0100)
movein
movein.1

diff --git a/movein b/movein
index 20c71ef..8030ee3 100755 (executable)
--- a/movein
+++ b/movein
@@ -53,6 +53,9 @@ COMMANDS
   list-remote
       show a list of remote repositories
 
+  locate pattern
+      locate which repositories contain files matching pattern
+
   add repository_name
       checkout one or more repositories from the remote host and add it to
       mr's configuration
@@ -206,6 +209,13 @@ listremote() {
     " </dev/null
 }
 
+locate() {
+    local REPO
+    for REPO in $($0 list); do
+      (cd /; $0 exec "$REPO" git ls-files | sed -nr "/$1/{s/^/$REPO:/p}")
+    done
+}
+
 new() {
     if [ $# -lt 2 ]; then 
        usage
@@ -280,6 +290,9 @@ case "$command" in
     list-remote)
        listremote
        ;;
+    locate)
+       locate "$@"
+       ;;
 
     *)
        usage
index 83193ca..bd26280 100644 (file)
--- a/movein.1
+++ b/movein.1
@@ -65,6 +65,13 @@ repository_name
 start a subshell in repository_name
 .RE
 
+.B movein
+.IR locate
+pattern
+.RS 4
+search for files matching "pattern" (which is an extended regular expression
+passed to sed(1)) in all local repositories
+.RE
 
 .B movein
 .IR exec