From: Richard Hartmann Date: Fri, 10 Feb 2012 17:14:42 +0000 (+0100) Subject: Merge branch 'which' X-Git-Url: https://git.madduck.net/code/vcsh.git/commitdiff_plain/d6910eed1ad1ae786b997863ff133cac61e490c3?ds=sidebyside;hp=-c;pf=code Merge branch 'which' --- d6910eed1ad1ae786b997863ff133cac61e490c3 diff --combined doc/vcsh.1.ronn index 17be1a9,5e69c9a..cc66e07 --- a/doc/vcsh.1.ronn +++ b/doc/vcsh.1.ronn @@@ -25,6 -25,8 +25,8 @@@ vcsh(1) - manage config files in $HOME `vcsh` setup + `vcsh` which + `vcsh` write-gitignore `vcsh` @@@ -98,11 -100,14 +100,14 @@@ an interactive user * setup: Set up repository with recommended settings. + * which : + Find in name of any tracked file. + * write-gitignore: Write .gitignore.d/ via git ls-files. * : - Shortcut to run `vcsh` on a repo. Will prepend `git` to by itself. + Shortcut to run `vcsh` on a repo. Will prepend `git` to . * : Shortcut to run `vcsh enter `. diff --combined vcsh index 3a8fefc,015d47a..86e88f0 --- a/vcsh +++ b/vcsh @@@ -35,6 -35,7 +35,7 @@@ help() run \\ Use this repository setup Set up repository with recommended settings + which Find substring in name of any tracked file write-gitignore \\ Write .gitignore.d/ 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' ] ||