From 5fcd29025e754fbedc4c64fb9bb217469d2c0c82 Mon Sep 17 00:00:00 2001
From: Richard Hartmann <richih.mailinglist@gmail.com>
Date: Tue, 22 Nov 2011 23:55:50 +0100
Subject: [PATCH] Warn when source-only functions are called in executed
 context

---
 doc/error_codes.md | 3 +++
 vcsh               | 9 +++++++++
 2 files changed, 12 insertions(+)
 create mode 100644 doc/error_codes.md

diff --git a/doc/error_codes.md b/doc/error_codes.md
new file mode 100644
index 0000000..06d760d
--- /dev/null
+++ b/doc/error_codes.md
@@ -0,0 +1,3 @@
+* 0: OK
+* 1: Generic error
+* 10: source-only command was called without vcsh being sourced
diff --git a/vcsh b/vcsh
index 6fa6644..4ba30e5 100755
--- a/vcsh
+++ b/vcsh
@@ -5,6 +5,13 @@
 [ -z "$VCSH_BASE" ]       && VCSH_BASE="$XDG_CONFIG_HOME/vcsh/repo.d"
 
 SELF=$(basename $0)
+if [ "$SELF" = 'bash' ] ||
+   [ "$SELF" = 'dash' ] ||
+   [ "$SELF" = 'sh' ] ||
+   [ "$SELF" = 'zsh' ]; then
+	SELF='vcsh'
+	VCSH_SOURCED=1
+fi
 
 
 help() {
@@ -176,6 +183,7 @@ elif [ "$VCSH_COMMAND" = 'exit' ]; then
 #		unset VCSH_NO_IGNORE_EOF
 #		setopt NO_IGNORE_EOF
 #	fi
+	[ -z "$VCSH_SOURCED" ] && echo "$SELF $VCSH_COMMAND: You need to source vcsh if you want to run in this mode" && return 10
 	leave
 #	[ -n "$ZSH_VERSION" ] && [ "$USER" = richih ] && buildPS1
 	verbose "exit end"
@@ -251,6 +259,7 @@ elif [ "$VCSH_COMMAND" = 'use' ]; then
 #		zle -N vcsh_exit
 #		bindkey '^d' 'vcsh_exit'
 #	fi
+	[ -z "$VCSH_SOURCED" ] && echo "$SELF $VCSH_COMMAND: You need to source vcsh if you want to run in this mode" && return 10
 	use || return $?
 #	[ -n "$ZSH_VERSION" ] && [ "$USER" = richih ] && buildPS1
 	verbose "use end"
-- 
GitLab