bump(bitbucket.org/kardianos/osext): 364fb577de68

This commit is contained in:
Ben Johnson
2013-10-14 10:05:46 -06:00
parent 6b55a47090
commit e1003a8623

View File

@@ -8,6 +8,7 @@ package osext
import (
"os"
"path/filepath"
"runtime"
"syscall"
"unsafe"
@@ -47,18 +48,35 @@ func executable() (string, error) {
break
}
}
var strpath string
if buf[0] != '/' {
if getwdError != nil {
return string(buf), getwdError
} else {
if buf[0] == '.' {
buf = buf[1:]
}
if startUpcwd[len(startUpcwd)-1] != '/' {
return startUpcwd + "/" + string(buf), nil
}
return startUpcwd + string(buf), nil
var e error
if strpath, e = getAbs(buf); e != nil {
return strpath, e
}
} else {
strpath = string(buf)
}
// darwin KERN_PROCARGS may return the path to a symlink rather than the
// actual executable
if runtime.GOOS == "darwin" {
if strpath, err := filepath.EvalSymlinks(strpath); err != nil {
return strpath, err
}
}
return string(buf), nil
return strpath, nil
}
func getAbs(buf []byte) (string, error) {
if getwdError != nil {
return string(buf), getwdError
} else {
if buf[0] == '.' {
buf = buf[1:]
}
if startUpcwd[len(startUpcwd)-1] != '/' && buf[0] != '/' {
return startUpcwd + "/" + string(buf), nil
}
return startUpcwd + string(buf), nil
}
}