]> git.madduck.net Git - code/vcsh.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Merge branch 'which'
authorRichard Hartmann <richih.mailinglist@gmail.com>
Fri, 10 Feb 2012 17:14:42 +0000 (18:14 +0100)
committerRichard Hartmann <richih.mailinglist@gmail.com>
Fri, 10 Feb 2012 17:14:42 +0000 (18:14 +0100)
1  2 
doc/vcsh.1.ronn
vcsh

diff --combined doc/vcsh.1.ronn
index 17be1a9ba72fe8bf6e517475bfa49ae0161425f1,5e69c9a7f94118645ed4cd6ee4007533872173cc..cc66e075b9ff4b49d220ce9579c95fbce2809589
@@@ -25,6 -25,8 +25,8 @@@ vcsh(1) - manage config files in $HOME 
  
  `vcsh` setup <repo>
  
+ `vcsh` which <substring>
  `vcsh` write-gitignore <repo>
  
  `vcsh` <repo> <gitcommand>
@@@ -98,11 -100,14 +100,14 @@@ an interactive user
  * setup:
    Set up repository with recommended settings.
  
+ * which <substring>:
+   Find <substring> in name of any tracked file.
  * write-gitignore:
    Write .gitignore.d/<repo> via git ls-files.
  
  * <repo> <gitcommand>:
 -  Shortcut to run `vcsh` on a repo. Will prepend `git` to <command> by itself.
 +  Shortcut to run `vcsh` on a repo. Will prepend `git` to <command>.
  
  * <repo>:
    Shortcut to run `vcsh enter <repo>`.
diff --combined vcsh
index 3a8fefcaea7fc9d3f6549d775bd9f728e3c177e7,015d47a7430be9ff270082ac7c66d008b1a99437..86e88f0ea59760abdd63bfc794d5bc77b178b14b
--- 1/vcsh
--- 2/vcsh
+++ b/vcsh
@@@ -35,6 -35,7 +35,7 @@@ help() 
     run <repo> \\
         <command>        Use this repository
     setup                Set up repository with recommended settings
+    which <substring>    Find substring in name of any tracked file
     write-gitignore \\
     <repo>               Write .gitignore.d/<repo> via git ls-files
  
@@@ -100,7 -101,7 +101,7 @@@ To continue, type 'Yes, do as I say'
        for file in $files; do
                rm -f $file || info "could not delete '$file', continuing with deletion"
        done
 -      rmdir "$GIT_DIR" || error "could not delete '$GIT_DIR'"
 +      rm -r "$GIT_DIR" || error "could not delete '$GIT_DIR'"
  }
  
  enter() {
@@@ -183,6 -184,14 +184,14 @@@ use() 
        export VCSH_DIRECTORY="$VCSH_REPO_NAME"
  }
  
+ which() {
+       for VCSH_REPO_NAME in $(list); do
+               for VCSH_FILE in $(get_files); do
+                       echo $VCSH_FILE | grep -q "$VCSH_COMMAND_PARAMETER" && echo "$VCSH_REPO_NAME: $VCSH_FILE"
+               done
+       done | sort -u
+ }
  write_gitignore() {
        use
        cd "$VCSH_BASE" || fatal "could not enter '$VCSH_BASE'" 11
@@@ -219,12 -228,17 +228,17 @@@ if [ ! "x$VCSH_GITIGNORE" = 'xexact' ] 
  fi
  
  if [ "$1" = 'clone' ]; then
 -      [ -z $2 ] && fatal "$1: please specify a remote" 1
 +      [ -z "$2" ] && fatal "$1: please specify a remote" 1
        export VCSH_COMMAND="$1"
        GIT_REMOTE="$2"
        [ -n "$3" ] && VCSH_REPO_NAME="$3" || VCSH_REPO_NAME=$(basename "$GIT_REMOTE" .git)
        export VCSH_REPO_NAME
        export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
+ elif [ "$1" = 'which' ]; then
+       [ -z "$2" ] && fatal "$1: please specify a filename" 1
+       [ -n "$3" ] && fatal "$1: too many parameters" 1
+       export VCSH_COMMAND="$1"
+       export VCSH_COMMAND_PARAMETER="$2"
  elif [ "$1" = 'delete' ]           ||
       [ "$1" = 'enter' ]            ||
       [ "$1" = 'init' ]             ||