#!/bin/sh
-[ "$VCSH_DEBUG" = '1' ] && set -x
+[ -n "$VCSH_DEBUG" ] && set -x
SELF=$(basename $0)
[ -z "$XDG_CONFIG_HOME" ] && XDG_CONFIG_HOME="$HOME/.config"
-for check_directory in "$XDG_CONFIG_HOME" "$XDG_CONFIG_HOME/vcsh" "$XDG_CONFIG_HOME/vcsh/repo.d"
+[ -z "$VCSH_BASE" ] && VCSH_BASE="$XDG_CONFIG_HOME/vcsh/repo.d"
+for check_directory in "$VCSH_BASE"
do
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)
+ mkdir -p "$check_directory" || (echo "$SELF: error: could not create $check_directory" >&2; exit 2)
fi
fi
done
-VCSH_BASE="$XDG_CONFIG_HOME/vcsh/repo.d"
debug() {
- [ "$VCSH_DEBUG" = '1' ] && echo "$SELF: debug: $1"
+ [ -n "$VCSH_DEBUG" ] && echo "$SELF: debug: $1"
}
verbose() {
- if [ "$VCSH_DEBUG" = '1' ] || [ "$VCSH_VERBOSE" = '1' ]; then echo "$SELF: verbose: $1"; fi
+ if [ -n "$VCSH_DEBUG" ] || [ -n "$VCSH_VERBOSE" ]; then echo "$SELF: verbose: $1"; fi
}
# use <repo> Use this repository
init <repo> Initialize a new repository
clone <remote> \\
- [<repo>] Clone from an existing repository
+ [<repo>] Clone from an existing repository" >&2
}
use() {
done
[ "$VCSH_CONFLICT" = '1' ] &&
echo "$SELF: fatal: will stop after fetching and not try to merge!\n" &&
+ echo " Once this situation has been resolved, run 'vcsh run <foo> git pull' to finish cloning.\n" &&
exit 3
git merge origin/master
# vcsh use $REPO_NAME
elif [ "$1" = 'init' ]; then
verbose "init begin"
- [ -z $2 ] && help; return 0
+ [ -z $2 ] && help && return 0
export REPO_NAME="$2"
export GIT_DIR="$VCSH_BASE/$REPO_NAME.git"
init