diff --git a/_vcsh b/_vcsh index 6ee95c8d1efc0f77bc1be48167fbf7b30dd05606..9f5b00658d0751c60ade48d957ef3dbe67522114 100644 --- a/_vcsh +++ b/_vcsh @@ -1,15 +1,15 @@ #compdef vcsh -# use\:"use/enter repo" -# exit\:"exit repo" _arguments \ ':subcommand:(( clone\:"clone from repo" help\:"display help" - init\:"init & clone from repo" delete\:"delete repo" + exit\:"Exit repo; unset" + init\:"init & clone from repo" list\:"list all repos" run\:"run command on repo" seed-gitignore\:"seed .gitignore.d/foo from git ls-files" + use\:"Use repo; set ENV" \<REPO\>\:"Run git command directly" ))' diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn index 50810449395ecd3945f096c4ef6a291e9952bba1..744a0b3c81bf50b6f4c0a519b4f4bd661e4f8ce0 100644 --- a/doc/vcsh.1.ronn +++ b/doc/vcsh.1.ronn @@ -5,10 +5,12 @@ vcsh(1) - manage and sync config files via git `vcsh` clone <url> [<location>] -`vcsh` help - `vcsh` delete +`vcsh` exit + +`vcsh` help + `vcsh` init <repo> `vcsh` list @@ -17,6 +19,8 @@ vcsh(1) - manage and sync config files via git `vcsh` seed-gitignore +`vcsh` use <repo> + `vcsh` <repo> <gitcommand> @@ -43,12 +47,15 @@ A sample configuration for `vcsh` and `mr` can be found at * clone: Clone an existing repository. -* help: - Display help. - * delete: Delete an existing repository. +* exit: + Exit repository; unset ENV + +* help: + Display help. + * init: Initialize an empty repository. @@ -62,6 +69,9 @@ A sample configuration for `vcsh` and `mr` can be found at * seed-gitignore: Seed .gitignore.d/<repo> from git ls-files. +* use: + Use repository; set ENV + * <repo> <gitcommand>: Shortcut to run `vcsh` on a repo. Will prepend `git` to <command> by itself. diff --git a/vcsh b/vcsh index daf8893cc0ad617b27b69b3e8e509627c2041361..6fa6644aaed8b2462fe7070f53451ae12197675b 100755 --- a/vcsh +++ b/vcsh @@ -14,19 +14,18 @@ help() { [<repo>] Clone from an existing repository help Display this help text delete Delete an existing repository + exit Exit repository; unset ENV init <repo> Initialize a new repository - list List all repos + list List all repositories run <repo> \\ <command> Use this repository seed-gitignore \\ <repo> Seed .gitignore.d/<repo> from git ls-files + use <repo> Use repository; set ENV <repo> <git command> Special command that allows you to run git commands directly without having to type so much ;)" >&2 -# use <repo> Use this repository -# -# exit Exit vcsh mode" >&2 } debug() { @@ -85,7 +84,8 @@ if [ "$1" = 'clone' ]; then elif [ "$1" = 'delete' ] || [ "$1" = 'init' ] || [ "$1" = 'run' ] || - [ "$1" = 'seed-gitignore' ]; then + [ "$1" = 'seed-gitignore' ] || + [ "$1" = 'use' ]; then [ -z $2 ] && echo "$SELF $1: error: please specify repository to work on" && return 1 export VCSH_COMMAND="$1" export VCSH_REPO_NAME="$2" @@ -95,7 +95,8 @@ elif [ "$1" = 'delete' ] || if [ "$VCSH_COMMAND" = 'run' ]; then [ -z "$VCSH_EXTERNAL_COMMAND" ] && echo "$SELF $1 $2: error: please specify a command" && return 1 fi -elif [ "$1" = 'help' ] || +elif [ "$1" = 'exit' ] || + [ "$1" = 'help' ] || [ "$1" = 'list' ]; then export VCSH_COMMAND="$1" else @@ -169,16 +170,16 @@ To continue, type \"Yes, do as I say\"" cd "$old_dir" verbose "delete end" -#elif [ "$VCSH_COMMAND" = 'exit' ]; then -# verbose "exit begin" +elif [ "$VCSH_COMMAND" = 'exit' ]; then + verbose "exit begin" # if [ -n "$ZSH_VERSION" ] && [ "$VCSH_NO_IGNORE_EOF" = '1' ]; then # unset VCSH_NO_IGNORE_EOF # setopt NO_IGNORE_EOF # fi -# leave + leave # [ -n "$ZSH_VERSION" ] && [ "$USER" = richih ] && buildPS1 -# verbose "exit end" -# exit 0 + verbose "exit end" + return 0 elif [ "$VCSH_COMMAND" = 'init' ]; then verbose "init begin" @@ -236,8 +237,8 @@ elif [ "$VCSH_COMMAND" = 'seed-gitignore' ]; then cd "$old_dir" verbose "seed-gitignore end" -#elif [ "$VCSH_COMMAND" = 'use' ]; then -# verbose "use begin" +elif [ "$VCSH_COMMAND" = 'use' ]; then + verbose "use begin" # if [ -n "$ZSH_VERSION" ]; then # if [ -o NO_IGNORE_EOF ]; then # export VCSH_NO_IGNORE_EOF=1 @@ -250,9 +251,9 @@ elif [ "$VCSH_COMMAND" = 'seed-gitignore' ]; then # zle -N vcsh_exit # bindkey '^d' 'vcsh_exit' # fi -# use || return $? + use || return $? # [ -n "$ZSH_VERSION" ] && [ "$USER" = richih ] && buildPS1 -# verbose "use end" + verbose "use end" else verbose "defaulting to calling help()"