From 4424028c0faa46b809fff726c8ec3d96a8e34d32 Mon Sep 17 00:00:00 2001 From: Richard Hartmann Date: Wed, 23 Nov 2011 00:04:17 +0100 Subject: [PATCH] Introduce `vcsh enter` --- _vcsh | 1 + doc/vcsh.1.ronn | 9 +++++++-- vcsh | 9 +++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/_vcsh b/_vcsh index 9f5b006..4249144 100644 --- a/_vcsh +++ b/_vcsh @@ -5,6 +5,7 @@ _arguments \ clone\:"clone from repo" help\:"display help" delete\:"delete repo" + enter\:"Enter repo; spawn new \$SHELL" exit\:"Exit repo; unset" init\:"init & clone from repo" list\:"list all repos" diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn index 015e76e..71fbc6a 100644 --- a/doc/vcsh.1.ronn +++ b/doc/vcsh.1.ronn @@ -7,6 +7,8 @@ vcsh(1) - manage and sync config files via git `vcsh` delete +`vcsh` enter + `vcsh` exit `vcsh` help @@ -50,8 +52,11 @@ A sample configuration for `vcsh` and `mr` can be found at * delete: Delete an existing repository. +* enter: + Enter repository; spawn new <$SHELL>. + * exit: - Exit repository; unset ENV + Exit repository; unset ENV. * help: Display help. @@ -70,7 +75,7 @@ A sample configuration for `vcsh` and `mr` can be found at Seed .gitignore.d/ from git ls-files. * use: - Use repository; set ENV + Use repository; set ENV. * : Shortcut to run `vcsh` on a repo. Will prepend `git` to by itself. diff --git a/vcsh b/vcsh index 4ba30e5..b5e703e 100755 --- a/vcsh +++ b/vcsh @@ -21,6 +21,7 @@ help() { [] Clone from an existing repository help Display this help text delete Delete an existing repository + enter Enter repository; spawn new $SHELL exit Exit repository; unset ENV init Initialize a new repository list List all repositories @@ -89,6 +90,7 @@ if [ "$1" = 'clone' ]; then export VCSH_REPO_NAME export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git" elif [ "$1" = 'delete' ] || + [ "$1" = 'enter' ] || [ "$1" = 'init' ] || [ "$1" = 'run' ] || [ "$1" = 'seed-gitignore' ] || @@ -177,6 +179,13 @@ To continue, type \"Yes, do as I say\"" cd "$old_dir" verbose "delete end" +elif [ "$VCSH_COMMAND" = 'enter' ]; then + verbose "enter begin" + use || return $? + $SHELL + leave + verbose "enter end" + elif [ "$VCSH_COMMAND" = 'exit' ]; then verbose "exit begin" # if [ -n "$ZSH_VERSION" ] && [ "$VCSH_NO_IGNORE_EOF" = '1' ]; then -- 2.39.5