From: Richard Hartmann Date: Thu, 23 Oct 2014 19:02:17 +0000 (+0200) Subject: vcsh: Replace `list-tracked-by` with `list-tracked ` X-Git-Url: https://git.madduck.net/code/vcsh.git/commitdiff_plain/712cef9c4d816ff5960945f46f3a0a03e8921325 vcsh: Replace `list-tracked-by` with `list-tracked ` Also, refactor list_tracked_by() to re-use code --- diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn index 9827d4f..c91f646 100644 --- a/doc/vcsh.1.ronn +++ b/doc/vcsh.1.ronn @@ -17,9 +17,7 @@ vcsh(1) - Version Control System for $HOME - multiple Git repositories in $HOME `vcsh` list -`vcsh` list-tracked - -`vcsh` list-tracked-by +`vcsh` list-tracked [] `vcsh` list-untracked [<-r>] [] @@ -109,9 +107,14 @@ an interactive user. * list-tracked: List all files tracked by vcsh. + If you want to list files tracked by a specific repository, simply + append the repository's name last. + * list-tracked-by: List files tracked by a repository. + This is a legacy command; you should use `list-tracked ` instead. + * list-untracked: List all files NOT tracked by vcsh. diff --git a/vcsh b/vcsh index c2b6ff4..58ecb7f 100755 --- a/vcsh +++ b/vcsh @@ -108,9 +108,8 @@ help() { help Display this help text init Initialize a new repository list List all repositories - list-tracked List all files tracked by vcsh - list-tracked-by \\ - List files tracked by a repository + list-tracked \\ + [] List all files tracked all or one repositories list-untracked \\ [<-r>] [] List all files not tracked by all or one repositories pull Pull from all vcsh remotes @@ -247,16 +246,22 @@ get_files() { } list_tracked() { - for VCSH_REPO_NAME in $(list); do - get_files - done | sed "s,^,$(printf '%s\n' "$VCSH_BASE/" | \ - sed 's/[,\&]/\\&/g')," | sort -u + VCSH_REPO_NAME=$2; export VCSH_REPO_NAME + if [ -n "$VCSH_REPO_NAME" ]; then + get_files | list_tracked_helper + else + for VCSH_REPO_NAME in $(list); do + get_files + done | list_tracked_helper + fi +} + +list_tracked_helper() { + sed "s,^,$(printf '%s\n' "$VCSH_BASE/" | sed 's/[,\&]/\\&/g')," | sort -u } list_tracked_by() { - use - git ls-files | sed "s,^,$(printf '%s\n' "$VCSH_BASE/" | \ - sed 's/[,\&]/\\&/g')," | sort -u + list_tracked $2 } list_untracked() {