Issue #77 Factor out parts of CDirectoryUtils into CSwiftDirectories

CDirectoryUtils is utilities for manipulating directories.
CSwiftDirectories is getters that return directories used by swift.
This commit is contained in:
Mat Sutcliffe
2020-08-24 22:04:10 +01:00
parent 802576eda9
commit 8e065a8fef
61 changed files with 880 additions and 803 deletions

View File

@@ -16,6 +16,7 @@
#include "blackmisc/iterator.h"
#include "blackmisc/range.h"
#include "blackmisc/fileutils.h"
#include "blackmisc/swiftdirectories.h"
#include "blackmisc/directoryutils.h"
#include "blackmisc/statusmessage.h"
#include "blackmisc/stringutils.h"
@@ -1886,7 +1887,7 @@ namespace BlackMisc
const QString &CAircraftModelList::invalidModelFileAndPath()
{
static const QString f = CFileUtils::appendFilePathsAndFixUnc(CDirectoryUtils::logDirectory(), "invalidmodels.json");
static const QString f = CFileUtils::appendFilePathsAndFixUnc(CSwiftDirectories::logDirectory(), "invalidmodels.json");
return f;
}

View File

@@ -9,6 +9,7 @@
#include "blackmisc/simulation/aircraftmodelutils.h"
#include "blackmisc/simulation/fscommon/fscommonutil.h"
#include "blackmisc/simulation/aircraftmodellist.h"
#include "blackmisc/swiftdirectories.h"
#include "blackmisc/directoryutils.h"
#include "blackmisc/verify.h"
@@ -134,7 +135,7 @@ namespace BlackMisc
BLACK_VERIFY_X(dir.exists(), Q_FUNC_INFO, "Directory does not exist");
if (!dir.exists()) { return {}; }
const QString htmlTemplate = CFileUtils::readFileToString(CDirectoryUtils::htmlTemplateFilePath());
const QString htmlTemplate = CFileUtils::readFileToString(CSwiftDirectories::htmlTemplateFilePath());
const QString fn("airlineAircraftMatrix.html");
const bool ok = CFileUtils::writeStringToFile(htmlTemplate.arg(html), dir.absoluteFilePath(fn));
return ok ? dir.absoluteFilePath(fn) : "";

View File

@@ -7,6 +7,7 @@
*/
#include "autopublishdata.h"
#include "blackmisc/swiftdirectories.h"
#include "blackmisc/fileutils.h"
#include "blackmisc/json.h"
#include "blackmisc/logcategorylist.h"
@@ -106,7 +107,7 @@ namespace BlackMisc
{
if (this->isEmpty()) { return false; }
const QString fn = fileBaseName() % u'_' % QDateTime::currentDateTimeUtc().toString("yyyyMMddHHmmss") % fileAppendix();
return this->writeJsonToFile(CFileUtils::appendFilePaths(CDirectoryUtils::logDirectory(), fn));
return this->writeJsonToFile(CFileUtils::appendFilePaths(CSwiftDirectories::logDirectory(), fn));
}
bool CAutoPublishData::writeJsonToFile(const QString &pathAndFile) const

View File

@@ -16,6 +16,7 @@
#include "blackmisc/pq/length.h"
#include "blackmisc/datacache.h"
#include "blackmisc/statusmessagelist.h"
#include "blackmisc/swiftdirectories.h"
#include "blackmisc/directoryutils.h"
#include "blackmisc/blackmiscexport.h"
@@ -91,7 +92,7 @@ namespace BlackMisc
bool readFromJsonFile(const QString &fileAndPath, bool clear = true);
//! Read all JSON files matching the base name
int readFromJsonFiles(const QString &dirPath = CDirectoryUtils::logDirectory());
int readFromJsonFiles(const QString &dirPath = CSwiftDirectories::logDirectory());
//! Analyze against DB data
CStatusMessageList analyzeAgainstDBData(const CAircraftModelList &dbModels);
@@ -109,10 +110,10 @@ namespace BlackMisc
static const QString &fileAppendix();
//! Do any auto pubish files exist?
static bool existAutoPublishFiles(const QString &dirPath = CDirectoryUtils::logDirectory());
static bool existAutoPublishFiles(const QString &dirPath = CSwiftDirectories::logDirectory());
//! Delete any existing auto publish files
static int deleteAutoPublishFiles(const QString &dirPath = CDirectoryUtils::logDirectory());
static int deleteAutoPublishFiles(const QString &dirPath = CSwiftDirectories::logDirectory());
// ----------------- testing only ---------------

View File

@@ -8,6 +8,7 @@
#include "fscommonutil.h"
#include "aircraftcfgparser.h"
#include "blackmisc/swiftdirectories.h"
#include "blackmisc/directoryutils.h"
#include "blackmisc/fileutils.h"
#include "blackmisc/stringutils.h"
@@ -418,9 +419,9 @@ namespace BlackMisc
int CFsCommonUtil::copyFsxTerrainProbeFiles(const QString &simObjectDir, CStatusMessageList &messages)
{
messages.clear();
if (!CDirectoryUtils::existsUnemptyDirectory(CDirectoryUtils::shareTerrainProbeDirectory()))
if (!CDirectoryUtils::existsUnemptyDirectory(CSwiftDirectories::shareTerrainProbeDirectory()))
{
messages.push_back(CStatusMessage(getLogCategories(), CStatusMessage::SeverityError, u"No terrain probe source files in '%1'") << CDirectoryUtils::shareTerrainProbeDirectory());
messages.push_back(CStatusMessage(getLogCategories(), CStatusMessage::SeverityError, u"No terrain probe source files in '%1'") << CSwiftDirectories::shareTerrainProbeDirectory());
return -1;
}
@@ -438,7 +439,7 @@ namespace BlackMisc
return -1;
}
const QString lastSegment = CFileUtils::lastPathSegment(CDirectoryUtils::shareTerrainProbeDirectory());
const QString lastSegment = CFileUtils::lastPathSegment(CSwiftDirectories::shareTerrainProbeDirectory());
targetDir = CFileUtils::appendFilePathsAndFixUnc(targetDir, lastSegment);
const bool hasDir = td.mkpath(targetDir);
if (!hasDir)
@@ -447,8 +448,8 @@ namespace BlackMisc
return -1;
}
const int copied = CDirectoryUtils::copyDirectoryRecursively(CDirectoryUtils::shareTerrainProbeDirectory(), targetDir, true);
messages.push_back(CStatusMessage(getLogCategories(), CStatusMessage::SeverityInfo, u"Copied %1 files from '%2' to '%3'") << copied << CDirectoryUtils::shareTerrainProbeDirectory() << targetDir);
const int copied = CDirectoryUtils::copyDirectoryRecursively(CSwiftDirectories::shareTerrainProbeDirectory(), targetDir, true);
messages.push_back(CStatusMessage(getLogCategories(), CStatusMessage::SeverityInfo, u"Copied %1 files from '%2' to '%3'") << copied << CSwiftDirectories::shareTerrainProbeDirectory() << targetDir);
return copied;
}

View File

@@ -16,6 +16,7 @@
#include "blackmisc/pq/length.h"
#include "blackmisc/logmessage.h"
#include "blackmisc/worker.h"
#include "blackmisc/swiftdirectories.h"
#include "blackmisc/directoryutils.h"
#include "blackconfig/buildconfig.h"
#include <QDateTime>
@@ -72,7 +73,7 @@ namespace BlackMisc
QStringList CInterpolationLogger::getLatestLogFiles()
{
QStringList files({ "", "" });
const QString logDir = CDirectoryUtils::logDirectory();
const QString logDir = CSwiftDirectories::logDirectory();
QDir logs(logDir);
if (!logs.exists()) { return files; }
logs.setNameFilters(filePatterns());
@@ -91,14 +92,14 @@ namespace BlackMisc
QString CInterpolationLogger::getLogDirectory()
{
return CDirectoryUtils::logDirectory();
return CSwiftDirectories::logDirectory();
}
CStatusMessageList CInterpolationLogger::writeLogFiles(const QList<SituationLog> &interpolation, const QList<PartsLog> &parts)
{
if (parts.isEmpty() && interpolation.isEmpty()) { return CStatusMessage(static_cast<CInterpolationLogger *>(nullptr)).warning(u"No data for log"); }
static const QString html = QStringLiteral("Entries: %1\n\n%2");
const QString htmlTemplate = CFileUtils::readFileToString(CDirectoryUtils::htmlTemplateFilePath());
const QString htmlTemplate = CFileUtils::readFileToString(CSwiftDirectories::htmlTemplateFilePath());
CStatusMessageList msgs;
const QString ts = QDateTime::currentDateTimeUtc().toString("yyyyMMddhhmmss");
@@ -108,7 +109,7 @@ namespace BlackMisc
{
QString file = filePatternInterpolationLog();
file.remove('*');
const QString fn = CFileUtils::appendFilePaths(CDirectoryUtils::logDirectory(), QStringLiteral("%1 %2").arg(ts, file));
const QString fn = CFileUtils::appendFilePaths(CSwiftDirectories::logDirectory(), QStringLiteral("%1 %2").arg(ts, file));
const bool s = CFileUtils::writeStringToFile(htmlTemplate.arg(html.arg(interpolation.size()).arg(htmlInterpolation)), fn);
msgs.push_back(CInterpolationLogger::logStatusFileWriting(s, fn));
}
@@ -118,7 +119,7 @@ namespace BlackMisc
{
QString file = filePatternPartsLog();
file.remove('*');
const QString fn = CFileUtils::appendFilePaths(CDirectoryUtils::logDirectory(), QStringLiteral("%1 %2").arg(ts, file));
const QString fn = CFileUtils::appendFilePaths(CSwiftDirectories::logDirectory(), QStringLiteral("%1 %2").arg(ts, file));
const bool s = CFileUtils::writeStringToFile(htmlTemplate.arg(html.arg(parts.size()).arg(htmlParts)), fn);
msgs.push_back(CInterpolationLogger::logStatusFileWriting(s, fn));
}
@@ -126,7 +127,7 @@ namespace BlackMisc
QString kml = CKmlUtils::wrapAsKmlDocument(CInterpolationLogger::getKmlChangedSituations(interpolation));
if (!kml.isEmpty())
{
const QString fn = CFileUtils::appendFilePaths(CDirectoryUtils::logDirectory(), QStringLiteral("%1_changedSituations.kml").arg(ts));
const QString fn = CFileUtils::appendFilePaths(CSwiftDirectories::logDirectory(), QStringLiteral("%1_changedSituations.kml").arg(ts));
const bool s = CFileUtils::writeStringToFile(kml, fn);
msgs.push_back(CInterpolationLogger::logStatusFileWriting(s, fn));
}
@@ -134,7 +135,7 @@ namespace BlackMisc
kml = CKmlUtils::wrapAsKmlDocument(CInterpolationLogger::getKmlInterpolatedSituations(interpolation));
if (!kml.isEmpty())
{
const QString fn = CFileUtils::appendFilePaths(CDirectoryUtils::logDirectory(), QStringLiteral("%1_interpolatedSituations.kml").arg(ts));
const QString fn = CFileUtils::appendFilePaths(CSwiftDirectories::logDirectory(), QStringLiteral("%1_interpolatedSituations.kml").arg(ts));
const bool s = CFileUtils::writeStringToFile(kml, fn);
msgs.push_back(CInterpolationLogger::logStatusFileWriting(s, fn));
}
@@ -142,7 +143,7 @@ namespace BlackMisc
kml = CKmlUtils::wrapAsKmlDocument(CInterpolationLogger::getKmlElevations(interpolation));
if (!kml.isEmpty())
{
const QString fn = CFileUtils::appendFilePaths(CDirectoryUtils::logDirectory(), QStringLiteral("%1_elevations.kml").arg(ts));
const QString fn = CFileUtils::appendFilePaths(CSwiftDirectories::logDirectory(), QStringLiteral("%1_elevations.kml").arg(ts));
const bool s = CFileUtils::writeStringToFile(kml, fn);
msgs.push_back(CInterpolationLogger::logStatusFileWriting(s, fn));
}

View File

@@ -8,6 +8,7 @@
#include "blackmisc/simulation/xplane/xplaneutil.h"
#include "blackmisc/fileutils.h"
#include "blackmisc/swiftdirectories.h"
#include "blackmisc/directoryutils.h"
#include "qsystemdetection.h"
#include <QDir>
@@ -213,7 +214,7 @@ namespace BlackMisc
bool CXPlaneUtil::hasXSwiftBusBuildAndPluginDir(const QString &xplaneRootDir)
{
if (CDirectoryUtils::getXSwiftBusBuildDirectory().isEmpty()) { return false; }
if (CSwiftDirectories::getXSwiftBusBuildDirectory().isEmpty()) { return false; }
const QString xswiftBusPluginDir = CXPlaneUtil::xswiftbusPluginDir(xplaneRootDir);
return (!xswiftBusPluginDir.isEmpty());
}
@@ -255,11 +256,11 @@ namespace BlackMisc
bool CXPlaneUtil::hasNewerXSwiftBusBuild(const QString &xplaneRootDir)
{
if (CDirectoryUtils::getXSwiftBusBuildDirectory().isEmpty()) { return false; }
if (CSwiftDirectories::getXSwiftBusBuildDirectory().isEmpty()) { return false; }
const QString xswiftBusPluginDir = CXPlaneUtil::xswiftbusPluginDir(xplaneRootDir);
if (xswiftBusPluginDir.isEmpty()) { return false; }
const QFileInfo fiLatestBuild = CFileUtils::findLastModified(CDirectoryUtils::getXSwiftBusBuildDirectory(), true, xplFileFilter());
const QFileInfo fiLatestBuild = CFileUtils::findLastModified(CSwiftDirectories::getXSwiftBusBuildDirectory(), true, xplFileFilter());
if (!fiLatestBuild.lastModified().isValid()) { return false; }
const QFileInfo fiLatestDeployed = CFileUtils::findLastModified(xswiftBusPluginDir, true, xplFileFilter());
@@ -271,11 +272,11 @@ namespace BlackMisc
int CXPlaneUtil::copyXSwiftBusBuildFiles(const QString &xplaneRootDir)
{
if (CDirectoryUtils::getXSwiftBusBuildDirectory().isEmpty()) { return -1; }
if (CSwiftDirectories::getXSwiftBusBuildDirectory().isEmpty()) { return -1; }
const QString xswiftBusPluginDir = CXPlaneUtil::xswiftbusPluginDir(xplaneRootDir);
if (xswiftBusPluginDir.isEmpty()) { return -1; }
return CDirectoryUtils::copyDirectoryRecursively(CDirectoryUtils::getXSwiftBusBuildDirectory(), xswiftBusPluginDir, true);
return CDirectoryUtils::copyDirectoryRecursively(CSwiftDirectories::getXSwiftBusBuildDirectory(), xswiftBusPluginDir, true);
}
const QStringList &CXPlaneUtil::xplFileFilter()