From a56ca0d0cf6f42a9e48865ee6b6df3844d9997cd Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Wed, 13 May 2020 14:56:19 +0200 Subject: [PATCH] config: export default values for config file Variables related to the default configuration file location are needed if the config parsing is happening externally. We export them so they don't need to be copied to projects that use lnd as a library. --- config.go | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/config.go b/config.go index 780f3328..31790c32 100644 --- a/config.go +++ b/config.go @@ -35,7 +35,10 @@ import ( ) const ( - defaultConfigFilename = "lnd.conf" + // DefaultConfigFilename is the default configuration file name lnd + // tries to load. + DefaultConfigFilename = "lnd.conf" + defaultDataDirname = "data" defaultChainSubDirname = "chain" defaultGraphSubDirname = "graph" @@ -133,15 +136,25 @@ const ( ) var ( - defaultLndDir = btcutil.AppDataDir("lnd", false) - defaultConfigFile = filepath.Join(defaultLndDir, defaultConfigFilename) - defaultDataDir = filepath.Join(defaultLndDir, defaultDataDirname) - defaultLogDir = filepath.Join(defaultLndDir, defaultLogDirname) + // DefaultLndDir is the default directory where lnd tries to find its + // configuration file and store its data. This is a directory in the + // user's application data, for example: + // C:\Users\\AppData\Local\Lnd on Windows + // ~/.lnd on Linux + // ~/Library/Application Support/Lnd on MacOS + DefaultLndDir = btcutil.AppDataDir("lnd", false) + + // DefaultConfigFile is the default full path of lnd's configuration + // file. + DefaultConfigFile = filepath.Join(DefaultLndDir, DefaultConfigFilename) + + defaultDataDir = filepath.Join(DefaultLndDir, defaultDataDirname) + defaultLogDir = filepath.Join(DefaultLndDir, defaultLogDirname) defaultTowerDir = filepath.Join(defaultDataDir, defaultTowerSubDirname) - defaultTLSCertPath = filepath.Join(defaultLndDir, defaultTLSCertFilename) - defaultTLSKeyPath = filepath.Join(defaultLndDir, defaultTLSKeyFilename) + defaultTLSCertPath = filepath.Join(DefaultLndDir, defaultTLSCertFilename) + defaultTLSKeyPath = filepath.Join(DefaultLndDir, defaultTLSKeyFilename) defaultBtcdDir = btcutil.AppDataDir("btcd", false) defaultBtcdRPCCertFile = filepath.Join(defaultBtcdDir, "rpc.cert") @@ -292,8 +305,8 @@ type Config struct { // DefaultConfig returns all default values for the Config struct. func DefaultConfig() Config { return Config{ - LndDir: defaultLndDir, - ConfigFile: defaultConfigFile, + LndDir: DefaultLndDir, + ConfigFile: DefaultConfigFile, DataDir: defaultDataDir, DebugLevel: defaultLogLevel, TLSCertPath: defaultTLSCertPath, @@ -424,10 +437,10 @@ func LoadConfig() (*Config, error) { // file within it. configFileDir := cleanAndExpandPath(preCfg.LndDir) configFilePath := cleanAndExpandPath(preCfg.ConfigFile) - if configFileDir != defaultLndDir { - if configFilePath == defaultConfigFile { + if configFileDir != DefaultLndDir { + if configFilePath == DefaultConfigFile { configFilePath = filepath.Join( - configFileDir, defaultConfigFilename, + configFileDir, DefaultConfigFilename, ) } } @@ -475,7 +488,7 @@ func ValidateConfig(cfg Config, usageMessage string) (*Config, error) { // If the provided lnd directory is not the default, we'll modify the // path to all of the files and directories that will live within it. lndDir := cleanAndExpandPath(cfg.LndDir) - if lndDir != defaultLndDir { + if lndDir != DefaultLndDir { cfg.DataDir = filepath.Join(lndDir, defaultDataDirname) cfg.TLSCertPath = filepath.Join(lndDir, defaultTLSCertFilename) cfg.TLSKeyPath = filepath.Join(lndDir, defaultTLSKeyFilename)