Solaris doesn't support readlink so use greadlink if available instead.

Taken from Ryan Tomayko's "GNU is killing Solaris", c.f. http://tomayko.com/writings/gnu-is-killing-solaris
This commit is contained in:
Paul Mucur 2011-08-16 22:26:57 +01:00
parent 49ecbe147f
commit b7e19b4953
2 changed files with 10 additions and 2 deletions

View File

@ -1,6 +1,10 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
resolve_link() {
$(type -p greadlink readlink | head -1) $1
}
abs_dirname() { abs_dirname() {
local cwd="$(pwd)" local cwd="$(pwd)"
local path="$1" local path="$1"
@ -8,7 +12,7 @@ abs_dirname() {
while [ -n "$path" ]; do while [ -n "$path" ]; do
cd "${path%/*}" cd "${path%/*}"
local name="${path##*/}" local name="${path##*/}"
path="$(readlink "$name" || true)" path="$(resolve_link "$name" || true)"
done done
pwd pwd

View File

@ -12,6 +12,10 @@ if [ -z "$shell" ]; then
shell="$(basename "$SHELL")" shell="$(basename "$SHELL")"
fi fi
resolve_link() {
$(type -p greadlink readlink | head -1) $1
}
abs_dirname() { abs_dirname() {
local cwd="$(pwd)" local cwd="$(pwd)"
local path="$1" local path="$1"
@ -19,7 +23,7 @@ abs_dirname() {
while [ -n "$path" ]; do while [ -n "$path" ]; do
cd "${path%/*}" cd "${path%/*}"
local name="${path##*/}" local name="${path##*/}"
path="$(readlink "$name" || true)" path="$(resolve_link "$name" || true)"
done done
pwd pwd