core: add DataDir and StateDir pragmas

This commit is contained in:
outfoxxed 2025-05-16 20:54:21 -07:00
parent a05c0de53b
commit 325a51c82d
Signed by untrusted user: outfoxxed
GPG key ID: 4C88A185FB89301E
4 changed files with 47 additions and 11 deletions

View file

@ -74,6 +74,8 @@ int launch(const LaunchArgs& args, char** argv, QCoreApplication* coreApplicatio
bool desktopSettingsAware = true;
QString iconTheme = qEnvironmentVariable("QS_ICON_THEME");
QHash<QString, QString> envOverrides;
QString dataDir;
QString stateDir;
} pragmas;
auto stream = QTextStream(&file);
@ -100,6 +102,10 @@ int launch(const LaunchArgs& args, char** argv, QCoreApplication* coreApplicatio
pragmas.envOverrides.insert(var, val);
} else if (pragma.startsWith("ShellId ")) {
shellId = pragma.sliced(8).trimmed();
} else if (pragma.startsWith("DataDir ")) {
pragmas.dataDir = pragma.sliced(8).trimmed();
} else if (pragma.startsWith("StateDir ")) {
pragmas.stateDir = pragma.sliced(9).trimmed();
} else {
qCritical() << "Unrecognized pragma" << pragma;
return -1;
@ -140,7 +146,7 @@ int launch(const LaunchArgs& args, char** argv, QCoreApplication* coreApplicatio
}
#endif
QsPaths::init(shellId, pathId);
QsPaths::init(shellId, pathId, pragmas.dataDir, pragmas.stateDir);
QsPaths::instance()->linkRunDir();
QsPaths::instance()->linkPathDir();
LogManager::initFs();