diff options
author | Alexandre Van de Sande <alex.vandesande@ethdev.com> | 2015-03-04 21:04:07 +0800 |
---|---|---|
committer | Alexandre Van de Sande <alex.vandesande@ethdev.com> | 2015-03-04 21:04:07 +0800 |
commit | 5f25c117eb6a1145b18fc13ebc03e4dc570b908e (patch) | |
tree | f5296850d29c08179ac9f51c925463d880e2db08 /ethutil | |
parent | cf880f78d5e85d563654ac8277c1d51bf8c382c2 (diff) | |
parent | a56243075a7527d65d14c4cf3480029feb0a1e3f (diff) | |
download | dexon-5f25c117eb6a1145b18fc13ebc03e4dc570b908e.tar dexon-5f25c117eb6a1145b18fc13ebc03e4dc570b908e.tar.gz dexon-5f25c117eb6a1145b18fc13ebc03e4dc570b908e.tar.bz2 dexon-5f25c117eb6a1145b18fc13ebc03e4dc570b908e.tar.lz dexon-5f25c117eb6a1145b18fc13ebc03e4dc570b908e.tar.xz dexon-5f25c117eb6a1145b18fc13ebc03e4dc570b908e.tar.zst dexon-5f25c117eb6a1145b18fc13ebc03e4dc570b908e.zip |
Merge branch 'develop' into ui
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" } |