lib/common: Replace PathUtilities::concat with barrier::fs equivalent
This commit is contained in:
parent
bcafdc6783
commit
e7d936b5d7
|
@ -164,7 +164,7 @@ App::initApp(int argc, const char** argv)
|
|||
// parse command line
|
||||
parseArgs(argc, argv);
|
||||
|
||||
DataDirectories::profile(argsBase().m_profileDirectory);
|
||||
DataDirectories::profile(argsBase().m_profileDirectory.u8string());
|
||||
|
||||
// set log filter
|
||||
if (!CLOG->setFilter(argsBase().m_logFilter)) {
|
||||
|
|
|
@ -288,10 +288,10 @@ ArgParser::parseGenericArgs(int argc, const char* const* argv, int& i)
|
|||
argsBase().m_enableCrypto = false;
|
||||
}
|
||||
else if (isArg(i, argc, argv, NULL, "--profile-dir", 1)) {
|
||||
argsBase().m_profileDirectory = argv[++i];
|
||||
argsBase().m_profileDirectory = barrier::fs::u8path(argv[++i]);
|
||||
}
|
||||
else if (isArg(i, argc, argv, NULL, "--plugin-dir", 1)) {
|
||||
argsBase().m_pluginDirectory = argv[++i];
|
||||
argsBase().m_pluginDirectory = barrier::fs::u8path(argv[++i]);
|
||||
}
|
||||
else {
|
||||
// option not supported here
|
||||
|
|
|
@ -43,7 +43,7 @@ m_dropTarget(""),
|
|||
m_shouldExit(false),
|
||||
m_barrierAddress(),
|
||||
m_enableCrypto(true),
|
||||
m_profileDirectory(""),
|
||||
m_profileDirectory(),
|
||||
m_pluginDirectory("")
|
||||
{
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "base/String.h"
|
||||
#include "io/filesystem.h"
|
||||
|
||||
class ArgsBase {
|
||||
public:
|
||||
|
@ -50,6 +51,6 @@ public:
|
|||
bool m_shouldExit;
|
||||
String m_barrierAddress;
|
||||
bool m_enableCrypto;
|
||||
String m_profileDirectory;
|
||||
String m_pluginDirectory;
|
||||
barrier::fs::path m_profileDirectory;
|
||||
barrier::fs::path m_pluginDirectory;
|
||||
};
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
#include "base/TMethodEventJob.h"
|
||||
#include "common/Version.h"
|
||||
#include "common/DataDirectories.h"
|
||||
#include "common/PathUtilities.h"
|
||||
|
||||
#if SYSAPI_WIN32
|
||||
#include "arch/win32/ArchMiscWindows.h"
|
||||
|
@ -129,11 +128,15 @@ ServerApp::help()
|
|||
#endif
|
||||
|
||||
// refer to custom profile directory even if not saved yet
|
||||
String profilePath = argsBase().m_profileDirectory;
|
||||
if (profilePath.empty()) {
|
||||
profilePath = DataDirectories::profile();
|
||||
barrier::fs::path profile_path = argsBase().m_profileDirectory;
|
||||
if (profile_path.empty()) {
|
||||
profile_path = barrier::fs::u8path(DataDirectories::profile());
|
||||
}
|
||||
|
||||
auto usr_config_path = (profile_path / barrier::fs::u8path(USR_CONFIG_NAME)).u8string();
|
||||
auto sys_config_path = (barrier::fs::u8path(DataDirectories::systemconfig()) /
|
||||
barrier::fs::u8path(SYS_CONFIG_NAME)).u8string();
|
||||
|
||||
std::ostringstream buffer;
|
||||
buffer << "Start the barrier server component.\n"
|
||||
<< "\n"
|
||||
|
@ -156,8 +159,8 @@ ServerApp::help()
|
|||
<< "\n"
|
||||
<< "If no configuration file pathname is provided then the first of the\n"
|
||||
<< "following to load successfully sets the configuration:\n"
|
||||
<< " " << PathUtilities::concat(profilePath, USR_CONFIG_NAME) << "\n"
|
||||
<< " " << PathUtilities::concat(DataDirectories::systemconfig(), SYS_CONFIG_NAME) << "\n";
|
||||
<< " " << usr_config_path << "\n"
|
||||
<< " " << sys_config_path << "\n";
|
||||
|
||||
LOG((CLOG_PRINT "%s", buffer.str().c_str()));
|
||||
}
|
||||
|
@ -194,25 +197,25 @@ ServerApp::loadConfig()
|
|||
|
||||
// load the default configuration if no explicit file given
|
||||
else {
|
||||
String path = DataDirectories::profile();
|
||||
auto path = barrier::fs::u8path(DataDirectories::profile());
|
||||
if (!path.empty()) {
|
||||
// complete path
|
||||
path = PathUtilities::concat(path, USR_CONFIG_NAME);
|
||||
path /= barrier::fs::u8path(USR_CONFIG_NAME);
|
||||
|
||||
// now try loading the user's configuration
|
||||
if (loadConfig(path)) {
|
||||
if (loadConfig(path.u8string())) {
|
||||
loaded = true;
|
||||
args().m_configFile = path;
|
||||
args().m_configFile = path.u8string();
|
||||
}
|
||||
}
|
||||
if (!loaded) {
|
||||
// try the system-wide config file
|
||||
path = DataDirectories::systemconfig();
|
||||
path = barrier::fs::u8path(DataDirectories::systemconfig());
|
||||
if (!path.empty()) {
|
||||
path = PathUtilities::concat(path, SYS_CONFIG_NAME);
|
||||
if (loadConfig(path)) {
|
||||
path /= barrier::fs::u8path(SYS_CONFIG_NAME);
|
||||
if (loadConfig(path.u8string())) {
|
||||
loaded = true;
|
||||
args().m_configFile = path;
|
||||
args().m_configFile = path.u8string();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,32 +44,3 @@ std::string PathUtilities::basename(const std::string& path)
|
|||
return path.substr(path.find_last_of(Delimiters) + 1);
|
||||
}
|
||||
|
||||
std::string PathUtilities::concat(const std::string& left, const std::string& right)
|
||||
{
|
||||
// although npos is usually (-1) we can't count on that so handle it explicitly
|
||||
auto leftEnd = left.find_last_not_of(Delimiters);
|
||||
if (leftEnd == std::string::npos)
|
||||
leftEnd = 0;
|
||||
else
|
||||
++leftEnd;
|
||||
auto rightStart = right.find_first_not_of(Delimiters, 0);
|
||||
if (rightStart == std::string::npos) {
|
||||
// both left/right are empty
|
||||
if (left.size() == 0 && right.size() == 0)
|
||||
return "";
|
||||
// right is full of delims, left is okay
|
||||
if (leftEnd > 0)
|
||||
return left.substr(0, leftEnd);
|
||||
// both left/right useless but at least one has delims
|
||||
return std::string(1, DefaultDelimiter);
|
||||
}
|
||||
if (leftEnd == 0) {
|
||||
// right is okay and not prefixed with delims, left is empty
|
||||
if (left.size() == 0 && rightStart == 0)
|
||||
return right.substr(rightStart);
|
||||
// (right is okay and prefixed with delims) OR left is full of delims
|
||||
return DefaultDelimiter + right.substr(rightStart);
|
||||
}
|
||||
// concatenation using both left and right
|
||||
return left.substr(0, leftEnd) + DefaultDelimiter + right.substr(rightStart);
|
||||
}
|
||||
|
|
|
@ -23,5 +23,4 @@ class PathUtilities
|
|||
{
|
||||
public:
|
||||
static std::string basename(const std::string& path);
|
||||
static std::string concat(const std::string& left, const std::string& right);
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue