X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/1536eb46c4e6535b1d12b7152763ad883a8dba0e..31149fc284678effd9ab58aaff41c67175e9e866:/vcsh diff --git a/vcsh b/vcsh index 0edfe2f..bcd416c 100755 --- a/vcsh +++ b/vcsh @@ -62,9 +62,9 @@ init() { cd "$GIT_WORK_TREE" git init git config core.worktree "$GIT_WORK_TREE" - git config core.excludesfile ".gitignore.d/$REPO_NAME" - touch "$HOME/.gitignore.d/$REPO_NAME" - git add "$HOME/.gitignore.d/$REPO_NAME" + git config core.excludesfile ".gitignore.d/$VCSH_REPO_NAME" + touch "$HOME/.gitignore.d/$VCSH_REPO_NAME" + git add "$HOME/.gitignore.d/$VCSH_REPO_NAME" verbose "init() end" } @@ -84,18 +84,17 @@ if [ "$1" = 'clone' ]; then export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git" elif [ "$1" = 'delete' ] || [ "$1" = 'init' ] || - [ "$1" = 'run' ]; then + [ "$1" = 'run' ] || + [ "$1" = 'seed-gitignore' ]; then [ -z $2 ] && echo "$SELF $1: error: please specify repository to work on" && return 1 - [ -z $3 ] && echo "$SELF $1 $2: error: please specify a command" && return 1 export VCSH_COMMAND="$1" export VCSH_REPO_NAME="$2" export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git" shift 2 export VCSH_EXTERNAL_COMMAND="$*" -elif [ "$1" = 'seed-gitignore' ]; then - export VCSH_COMMAND="$1" - export VCSH_REPO_NAME="$2" - export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git" + if [ "$VCSH_COMMAND" = 'run' ]; then + [ -z "$VCSH_EXTERNAL_COMMAND" ] && echo "$SELF $1 $2: error: please specify a command" && return 1 + fi elif [ "$1" = 'help' ] || [ "$1" = 'list' ]; then export VCSH_COMMAND="$1" @@ -144,7 +143,8 @@ if [ "$VCSH_COMMAND" = 'clone' ]; then # use || return 1 verbose "clone end" -elif [ "$VCSH_COMMAND" = 'help' ] || [ "$#" -eq 0 ]; then +#elif [ "$VCSH_COMMAND" = 'help' ] || [ "$#" -eq 0 ]; then +elif [ "$VCSH_COMMAND" = 'help' ]; then help elif [ "$VCSH_COMMAND" = 'delete' ]; then @@ -221,16 +221,16 @@ elif [ "$VCSH_COMMAND" = 'seed-gitignore' ]; then for gitignore in $gitignores; do echo "$gitignore" >> "$tempfile" done - diff -N "$tempfile" "$HOME/.gitignore.d/$2" > /dev/null && + diff -N "$tempfile" "$HOME/.gitignore.d/$VCSH_REPO_NAME" > /dev/null && rm -f "$tempfile" && return - if [ -e "$HOME/.gitignore.d/$2" ]; then - echo "$SELF: info: $HOME/.gitignore.d/$2 differs from new data, moving it to $HOME/.gitignore.d/$2.bak" - mv -f "$HOME/.gitignore.d/$2" "$HOME/.gitignore.d/$2.bak" || - (echo "$SELF: fatal: could not move $HOME/.gitignore.d/$2 to $HOME/.gitignore.d/$2.bak" && exit 1) + if [ -e "$HOME/.gitignore.d/$VCSH_REPO_NAME" ]; then + echo "$SELF: info: $HOME/.gitignore.d/$VCSH_REPO_NAME differs from new data, moving it to $HOME/.gitignore.d/$VCSH_REPO_NAME.bak" + mv -f "$HOME/.gitignore.d/$VCSH_REPO_NAME" "$HOME/.gitignore.d/$VCSH_REPO_NAME.bak" || + (echo "$SELF: fatal: could not move $HOME/.gitignore.d/$VCSH_REPO_NAME to $HOME/.gitignore.d/$VCSH_REPO_NAME.bak" && exit 1) fi - mv -f "$tempfile" "$HOME/.gitignore.d/$2" || - (echo "$SELF: fatal: could not move $tempfile to $HOME/.gitignore.d/$2" && exit 1) + mv -f "$tempfile" "$HOME/.gitignore.d/$VCSH_REPO_NAME" || + (echo "$SELF: fatal: could not move $tempfile to $HOME/.gitignore.d/$VCSH_REPO_NAME" && exit 1) cd "$old_dir" verbose "seed-gitignore end"