svn path=/trunk/; revision=1
--- /dev/null
+#!/bin/zsh
+
+call=$0
+real=$call
+
+die() {
+ echo "$*" >/dev/stderr
+ exit 1
+}
+
+while [ -L "$real" ]; do
+ real="$(stat -c %N "$real" |sed -r "s:..*. -> .(.*).$:\1:")"
+done
+
+_EXEC="$(dirname "$real")" #execution directory
+_STOR="$(dirname "$call")" #storage directory
+
+[ -w "$_EXEC" ] && [ -d "$_EXEC" ] || die "storage directory must be writable"
+
+echo ex: $_EXEC
+echo st: $_STOR