Expand btcctl RPC cert path to from config file.
This commit allows paths in the btcctl config file to use environment variables and ~ as a shortcut for the home directory. Closes #113.
This commit is contained in:
parent
083f5e007c
commit
ae89f7aa82
1 changed files with 17 additions and 0 deletions
|
@ -30,6 +30,20 @@ type config struct {
|
||||||
TlsSkipVerify bool `long:"skipverify" description:"Do not verify tls certificates (not recommended!)"`
|
TlsSkipVerify bool `long:"skipverify" description:"Do not verify tls certificates (not recommended!)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// cleanAndExpandPath expands environement variables and leading ~ in the
|
||||||
|
// passed path, cleans the result, and returns it.
|
||||||
|
func cleanAndExpandPath(path string) string {
|
||||||
|
// Expand initial ~ to OS specific home directory.
|
||||||
|
if strings.HasPrefix(path, "~") {
|
||||||
|
homeDir := filepath.Dir(btcctlHomeDir)
|
||||||
|
path = strings.Replace(path, "~", homeDir, 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE: The os.ExpandEnv doesn't work with Windows-style %VARIABLE%,
|
||||||
|
// but they variables can still be expanded via POSIX-style $VARIABLE.
|
||||||
|
return filepath.Clean(os.ExpandEnv(path))
|
||||||
|
}
|
||||||
|
|
||||||
// loadConfig initializes and parses the config using a config file and command
|
// loadConfig initializes and parses the config using a config file and command
|
||||||
// line options.
|
// line options.
|
||||||
//
|
//
|
||||||
|
@ -88,5 +102,8 @@ func loadConfig() (*flags.Parser, *config, []string, error) {
|
||||||
return parser, nil, nil, err
|
return parser, nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle environment variable expansion in the RPC certificate path.
|
||||||
|
cfg.RPCCert = cleanAndExpandPath(cfg.RPCCert)
|
||||||
|
|
||||||
return parser, &cfg, remainingArgs, nil
|
return parser, &cfg, remainingArgs, nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue