Make default config relative to appdata directory.
This modifies the default configuration file to be relative to the application data directory (configuratble with --appdata). If there is no configuration file in this directory, then no additional configuration options are applied (it does not fallback to ~/.btcwallet/btcwallet.conf). Fixes #421.
This commit is contained in:
parent
178717341e
commit
5e3613775d
1 changed files with 13 additions and 2 deletions
15
config.go
15
config.go
|
@ -49,7 +49,7 @@ type config struct {
|
||||||
ShowVersion bool `short:"V" long:"version" description:"Display version information and exit"`
|
ShowVersion bool `short:"V" long:"version" description:"Display version information and exit"`
|
||||||
Create bool `long:"create" description:"Create the wallet if it does not exist"`
|
Create bool `long:"create" description:"Create the wallet if it does not exist"`
|
||||||
CreateTemp bool `long:"createtemp" description:"Create a temporary simulation wallet (pass=password) in the data directory indicated; must call with --datadir"`
|
CreateTemp bool `long:"createtemp" description:"Create a temporary simulation wallet (pass=password) in the data directory indicated; must call with --datadir"`
|
||||||
AppDataDir string `short:"A" long:"appdata" description:"Application data directory to save wallet database and logs"`
|
AppDataDir string `short:"A" long:"appdata" description:"Application data directory for wallet config, databases and logs"`
|
||||||
TestNet3 bool `long:"testnet" description:"Use the test Bitcoin network (version 3) (default mainnet)"`
|
TestNet3 bool `long:"testnet" description:"Use the test Bitcoin network (version 3) (default mainnet)"`
|
||||||
SimNet bool `long:"simnet" description:"Use the simulation test network (default mainnet)"`
|
SimNet bool `long:"simnet" description:"Use the simulation test network (default mainnet)"`
|
||||||
NoInitialLoad bool `long:"noinitialload" description:"Defer wallet creation/opening on startup and enable loading wallets over RPC"`
|
NoInitialLoad bool `long:"noinitialload" description:"Defer wallet creation/opening on startup and enable loading wallets over RPC"`
|
||||||
|
@ -283,7 +283,18 @@ func loadConfig() (*config, []string, error) {
|
||||||
// Load additional config from file.
|
// Load additional config from file.
|
||||||
var configFileError error
|
var configFileError error
|
||||||
parser := flags.NewParser(&cfg, flags.Default)
|
parser := flags.NewParser(&cfg, flags.Default)
|
||||||
configFilePath := cleanAndExpandPath(preCfg.ConfigFile)
|
configFilePath := preCfg.ConfigFile
|
||||||
|
if configFilePath == defaultConfigFile {
|
||||||
|
appDataDir := preCfg.AppDataDir
|
||||||
|
if appDataDir == defaultAppDataDir && preCfg.DataDir != defaultAppDataDir {
|
||||||
|
appDataDir = cleanAndExpandPath(preCfg.DataDir)
|
||||||
|
}
|
||||||
|
if appDataDir != defaultAppDataDir {
|
||||||
|
configFilePath = filepath.Join(appDataDir, defaultConfigFilename)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
configFilePath = cleanAndExpandPath(configFilePath)
|
||||||
|
}
|
||||||
err = flags.NewIniParser(parser).ParseFile(configFilePath)
|
err = flags.NewIniParser(parser).ParseFile(configFilePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(*os.PathError); !ok {
|
if _, ok := err.(*os.PathError); !ok {
|
||||||
|
|
Loading…
Reference in a new issue