diff options
author | Felix Lange <fjl@twurst.com> | 2016-09-16 17:53:50 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2016-09-16 21:24:31 +0800 |
commit | b42a5b118f1aa7ac1235547c8594146978941401 (patch) | |
tree | 5a0a56308fe3137f1c9c69394281dadfc4551f37 /node | |
parent | eeb322ae649c4a1a32430cdddfffed70f509181e (diff) | |
download | go-tangerine-b42a5b118f1aa7ac1235547c8594146978941401.tar.gz go-tangerine-b42a5b118f1aa7ac1235547c8594146978941401.tar.zst go-tangerine-b42a5b118f1aa7ac1235547c8594146978941401.zip |
common, node: move datadir defaults into package node
Diffstat (limited to 'node')
-rw-r--r-- | node/api.go | 4 | ||||
-rw-r--r-- | node/config.go | 6 | ||||
-rw-r--r-- | node/defaults.go | 60 |
3 files changed, 65 insertions, 5 deletions
diff --git a/node/api.go b/node/api.go index 2942705d9..631e92c8e 100644 --- a/node/api.go +++ b/node/api.go @@ -84,7 +84,7 @@ func (api *PrivateAdminAPI) StartRPC(host *string, port *rpc.HexNumber, cors *st } if host == nil { - h := common.DefaultHTTPHost + h := DefaultHTTPHost if api.node.config.HTTPHost != "" { h = api.node.config.HTTPHost } @@ -133,7 +133,7 @@ func (api *PrivateAdminAPI) StartWS(host *string, port *rpc.HexNumber, allowedOr } if host == nil { - h := common.DefaultWSHost + h := DefaultWSHost if api.node.config.WSHost != "" { h = api.node.config.WSHost } diff --git a/node/config.go b/node/config.go index 4a18432c7..15884a12e 100644 --- a/node/config.go +++ b/node/config.go @@ -201,7 +201,7 @@ func DefaultIPCEndpoint(clientIdentifier string) string { panic("empty executable name") } } - config := &Config{DataDir: common.DefaultDataDir(), IPCPath: clientIdentifier + ".ipc"} + config := &Config{DataDir: DefaultDataDir(), IPCPath: clientIdentifier + ".ipc"} return config.IPCEndpoint() } @@ -216,7 +216,7 @@ func (c *Config) HTTPEndpoint() string { // DefaultHTTPEndpoint returns the HTTP endpoint used by default. func DefaultHTTPEndpoint() string { - config := &Config{HTTPHost: common.DefaultHTTPHost, HTTPPort: common.DefaultHTTPPort} + config := &Config{HTTPHost: DefaultHTTPHost, HTTPPort: DefaultHTTPPort} return config.HTTPEndpoint() } @@ -231,7 +231,7 @@ func (c *Config) WSEndpoint() string { // DefaultWSEndpoint returns the websocket endpoint used by default. func DefaultWSEndpoint() string { - config := &Config{WSHost: common.DefaultWSHost, WSPort: common.DefaultWSPort} + config := &Config{WSHost: DefaultWSHost, WSPort: DefaultWSPort} return config.WSEndpoint() } diff --git a/node/defaults.go b/node/defaults.go new file mode 100644 index 000000000..bfe257c8e --- /dev/null +++ b/node/defaults.go @@ -0,0 +1,60 @@ +// Copyright 2016 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. + +package node + +import ( + "os" + "os/user" + "path/filepath" + "runtime" +) + +const ( + DefaultIPCSocket = "geth.ipc" // Default (relative) name of the IPC RPC socket + DefaultHTTPHost = "localhost" // Default host interface for the HTTP RPC server + DefaultHTTPPort = 8545 // Default TCP port for the HTTP RPC server + DefaultWSHost = "localhost" // Default host interface for the websocket RPC server + DefaultWSPort = 8546 // Default TCP port for the websocket RPC server +) + +// DefaultDataDir is the default data directory to use for the databases and other +// persistence requirements. +func DefaultDataDir() string { + // Try to place the data folder in the user's home dir + home := homeDir() + if home != "" { + if runtime.GOOS == "darwin" { + return filepath.Join(home, "Library", "Ethereum") + } else if runtime.GOOS == "windows" { + return filepath.Join(home, "AppData", "Roaming", "Ethereum") + } else { + return filepath.Join(home, ".ethereum") + } + } + // As we cannot guess a stable location, return empty and handle later + return "" +} + +func homeDir() string { + if home := os.Getenv("HOME"); home != "" { + return home + } + if usr, err := user.Current(); err == nil { + return usr.HomeDir + } + return "" +} |