diff options
author | zelig <viktor.tron@gmail.com> | 2015-03-03 03:13:41 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2015-03-03 03:13:41 +0800 |
commit | af6971f823431e091142dc81f1b252f681d086cf (patch) | |
tree | 2b34e0f42adaeebcf28c955249934f7dc5270792 /ethutil/common.go | |
parent | a60a18b080197cad836f18f9d093bba3bcb6cef8 (diff) | |
parent | 65cad14f9b27db396d036f47814d4843d947ac43 (diff) | |
download | go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar.gz go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar.bz2 go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar.lz go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar.xz go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar.zst go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.zip |
Merge remote-tracking branch 'upstream/develop' into blockpool2
Diffstat (limited to 'ethutil/common.go')
-rw-r--r-- | ethutil/common.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/ethutil/common.go b/ethutil/common.go index efc519732..9b66763b8 100644 --- a/ethutil/common.go +++ b/ethutil/common.go @@ -3,12 +3,50 @@ package ethutil import ( "fmt" "math/big" + "os" "os/user" "path" + "path/filepath" "runtime" "time" + + "github.com/kardianos/osext" ) +func DefaultAssetPath() string { + var assetPath string + pwd, _ := os.Getwd() + srcdir := path.Join(os.Getenv("GOPATH"), "src", "github.com", "ethereum", "go-ethereum", "cmd", "mist") + + // If the current working directory is the go-ethereum dir + // assume a debug build and use the source directory as + // asset directory. + if pwd == srcdir { + assetPath = path.Join(pwd, "assets") + } else { + switch runtime.GOOS { + case "darwin": + // Get Binary Directory + exedir, _ := osext.ExecutableFolder() + assetPath = filepath.Join(exedir, "../Resources") + case "linux": + assetPath = "/usr/share/mist" + case "windows": + assetPath = "./assets" + default: + assetPath = "." + } + } + + // Check if the assetPath exists. If not, try the source directory + // This happens when binary is run from outside cmd/mist directory + if _, err := os.Stat(assetPath); os.IsNotExist(err) { + assetPath = path.Join(srcdir, "assets") + } + + return assetPath +} + func DefaultDataDir() string { usr, _ := user.Current() if runtime.GOOS == "darwin" { |