mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-21 14:34:49 +01:00
util: add ArgsManager datadir helper functions
* Add ArgsManager::EnsureDataDir() Creates data directory if it doesn't exist * Add ArgsManager::GetConfigFilePath() Return config file path (read-only)
This commit is contained in:
parent
2c1fe27bf3
commit
56e370fbb9
2 changed files with 37 additions and 0 deletions
|
@ -446,6 +446,27 @@ const fs::path& ArgsManager::GetDataDir(bool net_specific) const
|
|||
return path;
|
||||
}
|
||||
|
||||
void ArgsManager::EnsureDataDir() const
|
||||
{
|
||||
/**
|
||||
* "/wallets" subdirectories are created in all **new**
|
||||
* datadirs, because wallet code will create new wallets in the "wallets"
|
||||
* subdirectory only if exists already, otherwise it will create them in
|
||||
* the top-level datadir where they could interfere with other files.
|
||||
* Wallet init code currently avoids creating "wallets" directories itself
|
||||
* for backwards compatibility, but this be changed in the future and
|
||||
* wallet code here could go away (#16220).
|
||||
*/
|
||||
auto path{GetDataDir(false)};
|
||||
if (!fs::exists(path)) {
|
||||
fs::create_directories(path / "wallets");
|
||||
}
|
||||
path = GetDataDir(true);
|
||||
if (!fs::exists(path)) {
|
||||
fs::create_directories(path / "wallets");
|
||||
}
|
||||
}
|
||||
|
||||
void ArgsManager::ClearPathCache()
|
||||
{
|
||||
LOCK(cs_args);
|
||||
|
@ -965,6 +986,11 @@ bool ArgsManager::ReadConfigStream(std::istream& stream, const std::string& file
|
|||
return true;
|
||||
}
|
||||
|
||||
fs::path ArgsManager::GetConfigFilePath() const
|
||||
{
|
||||
return GetConfigFile(GetPathArg("-conf", BITCOIN_CONF_FILENAME));
|
||||
}
|
||||
|
||||
bool ArgsManager::ReadConfigFiles(std::string& error, bool ignore_invalid_keys)
|
||||
{
|
||||
{
|
||||
|
|
|
@ -242,6 +242,11 @@ protected:
|
|||
void SelectConfigNetwork(const std::string& network);
|
||||
|
||||
[[nodiscard]] bool ParseParameters(int argc, const char* const argv[], std::string& error);
|
||||
|
||||
/**
|
||||
* Return config file path (read-only)
|
||||
*/
|
||||
fs::path GetConfigFilePath() const;
|
||||
[[nodiscard]] bool ReadConfigFiles(std::string& error, bool ignore_invalid_keys = false);
|
||||
|
||||
/**
|
||||
|
@ -475,6 +480,12 @@ protected:
|
|||
*/
|
||||
void LogArgs() const;
|
||||
|
||||
/**
|
||||
* If datadir does not exist, create it along with wallets/
|
||||
* subdirectory(s).
|
||||
*/
|
||||
void EnsureDataDir() const;
|
||||
|
||||
private:
|
||||
/**
|
||||
* Get data directory path
|
||||
|
|
Loading…
Add table
Reference in a new issue