From: Richard Hartmann Date: Thu, 23 Oct 2014 18:17:04 +0000 (+0200) Subject: Merge branch 'feature--overlay_functions' X-Git-Url: https://git.madduck.net/code/vcsh.git/commitdiff_plain/6dd74c1a57e084da1ec38bac52b48bda43d31334?ds=inline;hp=-c Merge branch 'feature--overlay_functions' --- 6dd74c1a57e084da1ec38bac52b48bda43d31334 diff --combined vcsh index a12bc49,301151a..53ce905 --- a/vcsh +++ b/vcsh @@@ -24,7 -24,6 +24,7 @@@ SELF=$(basename $0 fatal() { echo "$SELF: fatal: $1" >&2 + [ -z $2] && exit 1 exit $2 } @@@ -76,6 -75,7 +76,7 @@@ f # Read defaults : ${VCSH_REPO_D:="$XDG_CONFIG_HOME/vcsh/repo.d"} : ${VCSH_HOOK_D:="$XDG_CONFIG_HOME/vcsh/hooks-enabled"} + : ${VCSH_OVERLAY_D:="$XDG_CONFIG_HOME/vcsh/overlays-enabled"} : ${VCSH_BASE:="$HOME"} : ${VCSH_GITIGNORE:=exact} : ${VCSH_GITATTRIBUTES:=none} @@@ -149,10 -149,9 +150,10 @@@ clone() git remote add origin "$GIT_REMOTE" git config branch.master.remote origin git config branch.master.merge refs/heads/master - if [ $(git ls-remote origin master 2> /dev/null | wc -l ) -lt 1 ]; then - info "remote is empty, not merging anything" - exit + VCSH_CLONE_ERROR=$(git ls-remote origin master 2>&1) + if [ -n "$VCSH_CLONE_ERROR" ]; then + rm -rf "$GIT_DIR" + fatal "$VCSH_CLONE_ERROR" 1 fi git fetch hook pre-merge @@@ -513,6 -512,14 +514,14 @@@ check_dir "$VCSH_REPO_D verbose "$VCSH_COMMAND begin" VCSH_COMMAND=$(echo "$VCSH_COMMAND" | sed 's/-/_/g'); export VCSH_COMMAND + + # source overlay functions + for overlay in "$VCSH_OVERLAY_D/$VCSH_COMMAND"* "$VCSH_OVERLAY_D/$VCSH_REPO_NAME.$VCSH_COMMAND"*; do + [ -r "$overlay" ] || continue + info "sourcing '$overlay'" + . "$overlay" + done + hook pre-command $VCSH_COMMAND "$@" hook post-command