aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/utils
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2015-09-29 22:16:00 +0800
committerPéter Szilágyi <peterke@gmail.com>2015-10-01 17:26:19 +0800
commit74578ab22b24af99ff774927a18153f464334706 (patch)
treea3651af389cfc9b72db5a78e41652a69afde5fd5 /cmd/utils
parent9b94076717dfc65bda1470eecd6f61a0323f9bac (diff)
downloadgo-tangerine-74578ab22b24af99ff774927a18153f464334706.tar
go-tangerine-74578ab22b24af99ff774927a18153f464334706.tar.gz
go-tangerine-74578ab22b24af99ff774927a18153f464334706.tar.bz2
go-tangerine-74578ab22b24af99ff774927a18153f464334706.tar.lz
go-tangerine-74578ab22b24af99ff774927a18153f464334706.tar.xz
go-tangerine-74578ab22b24af99ff774927a18153f464334706.tar.zst
go-tangerine-74578ab22b24af99ff774927a18153f464334706.zip
common: fix #1818, secondary datadir paths to fall back to
Diffstat (limited to 'cmd/utils')
-rw-r--r--cmd/utils/flags.go16
1 files changed, 13 insertions, 3 deletions
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index b45ef0af2..ad474f17d 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -416,7 +416,7 @@ func MakeEthConfig(clientID, version string, ctx *cli.Context) *eth.Config {
cfg := &eth.Config{
Name: common.MakeName(clientID, version),
- DataDir: ctx.GlobalString(DataDirFlag.Name),
+ DataDir: MustDataDir(ctx),
GenesisNonce: ctx.GlobalInt(GenesisNonceFlag.Name),
GenesisFile: ctx.GlobalString(GenesisFileFlag.Name),
BlockChainVersion: ctx.GlobalInt(BlockchainVersionFlag.Name),
@@ -509,7 +509,7 @@ func SetupEth(ctx *cli.Context) {
// MakeChain creates a chain manager from set command line flags.
func MakeChain(ctx *cli.Context) (chain *core.ChainManager, chainDb ethdb.Database) {
- datadir := ctx.GlobalString(DataDirFlag.Name)
+ datadir := MustDataDir(ctx)
cache := ctx.GlobalInt(CacheFlag.Name)
var err error
@@ -539,11 +539,21 @@ func MakeChain(ctx *cli.Context) (chain *core.ChainManager, chainDb ethdb.Databa
// MakeChain creates an account manager from set command line flags.
func MakeAccountManager(ctx *cli.Context) *accounts.Manager {
- dataDir := ctx.GlobalString(DataDirFlag.Name)
+ dataDir := MustDataDir(ctx)
ks := crypto.NewKeyStorePassphrase(filepath.Join(dataDir, "keystore"))
return accounts.NewManager(ks)
}
+// MustDataDir retrieves the currently requested data directory, terminating if
+// none (or the empty string) is specified.
+func MustDataDir(ctx *cli.Context) string {
+ if path := ctx.GlobalString(DataDirFlag.Name); path != "" {
+ return path
+ }
+ Fatalf("Cannot determine default data directory, please set manually (--datadir)")
+ return ""
+}
+
func IpcSocketPath(ctx *cli.Context) (ipcpath string) {
if runtime.GOOS == "windows" {
ipcpath = common.DefaultIpcPath()