I have tested such as you suggest. But dash doesn't have BASH_SOURCE variable. So it doesn't work even with former EUCA_KEY_DIR=$(dirname $(readlink -f ${BASH_SOURCE})) My patch only improve situation with zsh. I don't know solution for dash.
In my tests I have following results
% cd /tmp
val@comp /tmp % ~/test/eucarc_bash_zsh_test/test_dash
/home/val/test/eucarc_bash_zsh_test
/home/val/test/eucarc_bash_zsh_test/euca2-admin-c8a78b6b-cert.pem
I have tested such as you suggest. But dash doesn't have BASH_SOURCE variable. So it doesn't work even with former EUCA_KEY_ DIR=$(dirname $(readlink -f ${BASH_SOURCE})) My patch only improve situation with zsh. I don't know solution for dash.
In my tests I have following results
% cd /tmp eucarc_ bash_zsh_ test/test_ dash val/test/ eucarc_ bash_zsh_ test val/test/ eucarc_ bash_zsh_ test/euca2- admin-c8a78b6b- cert.pem
val@comp /tmp % ~/test/
/home/
/home/
val@comp /tmp % ~/test/ eucarc_ bash_zsh_ test/test_ bash val/test/ eucarc_ bash_zsh_ test/.euca val/test/ eucarc_ bash_zsh_ test/.euca/ euca2-admin- c8a78b6b- cert.pem
/home/
/home/
val@comp /tmp % ~/test/ eucarc_ bash_zsh_ test/test_ zsh val/test/ eucarc_ bash_zsh_ test/.euca val/test/ eucarc_ bash_zsh_ test/.euca/ euca2-admin- c8a78b6b- cert.pem
/home/
/home/