Make GetDataDir return absolute paths
This commit is contained in:
parent
457661f640
commit
f4203de302
@ -150,11 +150,12 @@ bool AppInit2(int argc, char* argv[])
|
||||
// If Qt is used, parameters/bitcoin.conf are parsed in qt/bitcoin.cpp's main()
|
||||
#if !defined(QT_GUI)
|
||||
ParseParameters(argc, argv);
|
||||
if (!ReadConfigFile(mapArgs, mapMultiArgs))
|
||||
if (!boost::filesystem::is_directory(GetDataDir(false)))
|
||||
{
|
||||
fprintf(stderr, "Error: Specified directory does not exist\n");
|
||||
Shutdown(NULL);
|
||||
}
|
||||
ReadConfigFile(mapArgs, mapMultiArgs);
|
||||
#endif
|
||||
|
||||
if (mapArgs.count("-?") || mapArgs.count("--help"))
|
||||
|
@ -168,11 +168,12 @@ int main(int argc, char *argv[])
|
||||
ParseParameters(argc, argv);
|
||||
|
||||
// ... then bitcoin.conf:
|
||||
if (!ReadConfigFile(mapArgs, mapMultiArgs))
|
||||
if (!boost::filesystem::is_directory(GetDataDir(false)))
|
||||
{
|
||||
fprintf(stderr, "Error: Specified directory does not exist\n");
|
||||
return 1;
|
||||
}
|
||||
ReadConfigFile(mapArgs, mapMultiArgs);
|
||||
|
||||
// Application identification (must be set before OptionsModel is initialized,
|
||||
// as it is used to locate QSettings)
|
||||
|
11
src/util.cpp
11
src/util.cpp
@ -870,7 +870,11 @@ const boost::filesystem::path &GetDataDir(bool fNetSpecific)
|
||||
LOCK(csPathCached);
|
||||
|
||||
if (mapArgs.count("-datadir")) {
|
||||
path = mapArgs["-datadir"];
|
||||
path = fs::system_complete(mapArgs["-datadir"]);
|
||||
if (!fs::is_directory(path)) {
|
||||
path = "";
|
||||
return path;
|
||||
}
|
||||
} else {
|
||||
path = GetDefaultDataDir();
|
||||
}
|
||||
@ -892,7 +896,7 @@ boost::filesystem::path GetConfigFile()
|
||||
return pathConfigFile;
|
||||
}
|
||||
|
||||
bool ReadConfigFile(map<string, string>& mapSettingsRet,
|
||||
void ReadConfigFile(map<string, string>& mapSettingsRet,
|
||||
map<string, vector<string> >& mapMultiSettingsRet)
|
||||
{
|
||||
namespace fs = boost::filesystem;
|
||||
@ -900,7 +904,7 @@ bool ReadConfigFile(map<string, string>& mapSettingsRet,
|
||||
|
||||
fs::ifstream streamConfig(GetConfigFile());
|
||||
if (!streamConfig.good())
|
||||
return true; // No bitcoin.conf file is OK
|
||||
return; // No bitcoin.conf file is OK
|
||||
|
||||
set<string> setOptions;
|
||||
setOptions.insert("*");
|
||||
@ -917,7 +921,6 @@ bool ReadConfigFile(map<string, string>& mapSettingsRet,
|
||||
}
|
||||
mapMultiSettingsRet[strKey].push_back(it->value[0]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
boost::filesystem::path GetPidFile()
|
||||
|
@ -162,7 +162,7 @@ const boost::filesystem::path &GetDataDir(bool fNetSpecific = true);
|
||||
boost::filesystem::path GetConfigFile();
|
||||
boost::filesystem::path GetPidFile();
|
||||
void CreatePidFile(const boost::filesystem::path &path, pid_t pid);
|
||||
bool ReadConfigFile(std::map<std::string, std::string>& mapSettingsRet, std::map<std::string, std::vector<std::string> >& mapMultiSettingsRet);
|
||||
void ReadConfigFile(std::map<std::string, std::string>& mapSettingsRet, std::map<std::string, std::vector<std::string> >& mapMultiSettingsRet);
|
||||
bool GetStartOnSystemStartup();
|
||||
bool SetStartOnSystemStartup(bool fAutoStart);
|
||||
void ShrinkDebugFile();
|
||||
|
Loading…
Reference in New Issue
Block a user