setenv: check in a more robust way that the script is being sourced
authorAntonio Ospite <ao2@ao2.it>
Tue, 6 Oct 2015 10:26:17 +0000 (12:26 +0200)
committerAntonio Ospite <ao2@ao2.it>
Tue, 6 Oct 2015 10:26:17 +0000 (12:26 +0200)
Sometimes a leading '-' shows up in $0 for login shells, for example
this happens when opening a shell with "sudo -i"; in these cases $0 will
look like "-bash" instead of "bash", and the comparison with $(basename
$SHELL) fails even if the script is being sourced.

Fix this by stripping the leading '-'.

setenv

diff --git a/setenv b/setenv
index e5c51a5..b9a1569 100644 (file)
--- a/setenv
+++ b/setenv
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-[ "$0" = "$(basename $SHELL)" ] || { echo "This script is meant to be sourced, not executed" 1>&2; exit 1; }
+[ "${0#-}" = "$(basename $SHELL)" ] || { echo "This script is meant to be sourced, not executed" 1>&2; exit 1; }
 
 export ANDROID_HOME=$HOME/Android/android-sdk-linux
 export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools