Add CheckDataDirOption() function

This commit is contained in:
Hennadii Stepanov 2019-07-24 03:21:25 +03:00
parent c1f325126c
commit 740d41ce9f
No known key found for this signature in database
GPG Key ID: 410108112E7EA81F
2 changed files with 11 additions and 2 deletions

View File

@ -741,8 +741,9 @@ const fs::path &GetDataDir(bool fNetSpecific)
// this function
if (!path.empty()) return path;
if (gArgs.IsArgSet("-datadir")) {
path = fs::system_complete(gArgs.GetArg("-datadir", ""));
std::string datadir = gArgs.GetArg("-datadir", "");
if (!datadir.empty()) {
path = fs::system_complete(datadir);
if (!fs::is_directory(path)) {
path = "";
return path;
@ -761,6 +762,12 @@ const fs::path &GetDataDir(bool fNetSpecific)
return path;
}
bool CheckDataDirOption()
{
std::string datadir = gArgs.GetArg("-datadir", "");
return datadir.empty() || fs::is_directory(fs::system_complete(datadir));
}
void ClearDatadirCache()
{
LOCK(csPathCached);

View File

@ -83,6 +83,8 @@ fs::path GetDefaultDataDir();
// The blocks directory is always net specific.
const fs::path &GetBlocksDir();
const fs::path &GetDataDir(bool fNetSpecific = true);
// Return true if -datadir option points to a valid directory or is not specified.
bool CheckDataDirOption();
/** Tests only */
void ClearDatadirCache();
fs::path GetConfigFile(const std::string& confPath);