diff options
author | Paweł Bylica <pawel.bylica@imapp.pl> | 2015-03-03 01:46:55 +0800 |
---|---|---|
committer | Paweł Bylica <pawel.bylica@imapp.pl> | 2015-03-03 01:46:55 +0800 |
commit | 24003c76d12b83602ca93be375a3bc19f4fb3f1b (patch) | |
tree | 90e77c349df52806d78693f93704b92786fcb693 /ethutil | |
parent | 9c6d9dfc5c9fdd9aeb8f4d9926ed98008b849f2e (diff) | |
parent | 65cad14f9b27db396d036f47814d4843d947ac43 (diff) | |
download | dexon-24003c76d12b83602ca93be375a3bc19f4fb3f1b.tar dexon-24003c76d12b83602ca93be375a3bc19f4fb3f1b.tar.gz dexon-24003c76d12b83602ca93be375a3bc19f4fb3f1b.tar.bz2 dexon-24003c76d12b83602ca93be375a3bc19f4fb3f1b.tar.lz dexon-24003c76d12b83602ca93be375a3bc19f4fb3f1b.tar.xz dexon-24003c76d12b83602ca93be375a3bc19f4fb3f1b.tar.zst dexon-24003c76d12b83602ca93be375a3bc19f4fb3f1b.zip |
Merge remote-tracking branch 'upstream/develop' into evmjit
Diffstat (limited to 'ethutil')
-rw-r--r-- | ethutil/common.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/ethutil/common.go b/ethutil/common.go index 2ef2440c7..9b66763b8 100644 --- a/ethutil/common.go +++ b/ethutil/common.go @@ -3,10 +3,60 @@ 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" { + return path.Join(usr.HomeDir, "Library/Ethereum") + } else if runtime.GOOS == "windows" { + return path.Join(usr.HomeDir, "AppData/Roaming/Ethereum") + } else { + return path.Join(usr.HomeDir, ".ethereum") + } +} func IsWindows() bool { return runtime.GOOS == "windows" } |