diff options
author | Péter Szilágyi <peterke@gmail.com> | 2015-09-29 22:16:00 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2015-10-01 17:26:19 +0800 |
commit | 74578ab22b24af99ff774927a18153f464334706 (patch) | |
tree | a3651af389cfc9b72db5a78e41652a69afde5fd5 /cmd/utils | |
parent | 9b94076717dfc65bda1470eecd6f61a0323f9bac (diff) | |
download | go-tangerine-74578ab22b24af99ff774927a18153f464334706.tar.gz 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.go | 16 |
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 := ð.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() |