diff --git a/config.go b/config.go index 1a59cd2e5..8d066dd96 100644 --- a/config.go +++ b/config.go @@ -633,11 +633,22 @@ func LoadConfig(interceptor signal.Interceptor) (*Config, error) { // file within it. configFileDir := CleanAndExpandPath(preCfg.LndDir) configFilePath := CleanAndExpandPath(preCfg.ConfigFile) - if configFileDir != DefaultLndDir { - if configFilePath == DefaultConfigFile { - configFilePath = filepath.Join( - configFileDir, lncfg.DefaultConfigFilename, - ) + switch { + // User specified --lnddir but no --configfile. Update the config file + // path to the lnd config directory, but don't require it to exist. + case configFileDir != DefaultLndDir && + configFilePath == DefaultConfigFile: + + configFilePath = filepath.Join( + configFileDir, lncfg.DefaultConfigFilename, + ) + + // User did specify an explicit --configfile, so we check that it does + // exist under that path to avoid surprises. + case configFilePath != DefaultConfigFile: + if !fileExists(configFilePath) { + return nil, fmt.Errorf("specified config file does "+ + "not exist in %s", configFilePath) } } diff --git a/lntest/harness_node.go b/lntest/harness_node.go index ccdd15795..d678d863b 100644 --- a/lntest/harness_node.go +++ b/lntest/harness_node.go @@ -226,7 +226,6 @@ func (cfg *BaseNodeConfig) GenArgs() []string { fmt.Sprintf("--datadir=%v", cfg.DataDir), fmt.Sprintf("--tlscertpath=%v", cfg.TLSCertPath), fmt.Sprintf("--tlskeypath=%v", cfg.TLSKeyPath), - fmt.Sprintf("--configfile=%v", cfg.DataDir), fmt.Sprintf("--adminmacaroonpath=%v", cfg.AdminMacPath), fmt.Sprintf("--readonlymacaroonpath=%v", cfg.ReadMacPath), fmt.Sprintf("--invoicemacaroonpath=%v", cfg.InvoiceMacPath),