X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/2db7eb61c0ba0c9c48f6a0a1b08064c10a6dec8a..90f2e0fd790057e4c37967d2053c5a2bf7b9e678:/vcsh diff --git a/vcsh b/vcsh index 3d08f22..c4423fd 100755 --- a/vcsh +++ b/vcsh @@ -3,19 +3,20 @@ #set -x SELF=$(basename $0) + [ -z $XDG_CONFIG_HOME ] && XDG_CONFIG_HOME="$HOME/.config" -for dir in $XDG_CONFIG_HOME $XDG_CONFIG_HOME/vcsh $XDG_CONFIG_HOME/vcsh/repo.d +for check_directory in $XDG_CONFIG_HOME $XDG_CONFIG_HOME/vcsh $XDG_CONFIG_HOME/vcsh/repo.d do - - if [ ! -d $dir ]; then - if [ -e $dir ]; then - echo "$SELF: error: $dir exists but is not a directory" >&2 - return 2 - else - mkdir $dir || (echo "$SELF: error: could not create $dir" >&2; return 2) - fi - fi + if [ ! -d $check_directory ]; then + if [ -e $check_directory ]; then + echo "$SELF: error: $check_directory exists but is not a directory" >&2 + exit 2 + else + mkdir $check_directory || (echo "$SELF: error: could not create $check_directory" >&2; exit 2) + fi + fi done + VCSH_BASE="$XDG_CONFIG_HOME/vcsh/repo.d" help() { @@ -73,32 +74,37 @@ leave() { if [ "$1" = 'help' ] || [ $# -eq 0 ]; then help [ "$1" = 'help' ] - return $? + exit $? elif [ "$1" = 'list' ]; then for i in $VCSH_BASE/*.git; do echo $(basename $i .git) done - return 0 + exit 0 elif [ "$1" = 'run' ]; then use $2 shift 2 "$@" leave - return 0 + exit 0 elif [ "$1" = 'use' ]; then if [[ -o NO_IGNORE_EOF ]]; then export VCSH_NO_IGNORE_EOF=1 setopt IGNORE_EOF - vcsh_exit() {vcsh exit; zle reset-prompt;} + if [[ -n $ZSH_VERSION ]]; then + vcsh_exit() { + vcsh exit; + zle reset-prompt; + } + fi zle -N vcsh_exit bindkey '^d' 'vcsh_exit' fi use $2 buildPS1 - return 0 + exit 0 elif [ "$1" = 'clone' ]; then GIT_REMOTE="$2" @@ -136,11 +142,11 @@ elif [ "$1" = 'exit' ]; then fi leave buildPS1 - return 0 + exit 0 else help - return 3 + exit 3 fi