Refactor just a little

This commit is contained in:
2026-06-28 07:43:05 -04:00
parent 866b049566
commit 6fef2493ac
14 changed files with 595 additions and 444 deletions

170
src/filesystem.cpp Normal file
View File

@@ -0,0 +1,170 @@
#include "filesystem.h"
#include <iostream>
#include "logging.h"
void deleteDir(const std::filesystem::path& path, bool dryrun) {
if (dryrun) {
spdlog::get("filesystem")
->warn("[DRYRUN] Deleting '{}'", path.string());
return;
}
spdlog::get("filesystem")->warn("DELETING '{}' directory.", path.string());
spdlog::get("filesystem")->debug("Checking '{}'", path.string());
if (!std::filesystem::exists(path) ||
!std::filesystem::is_directory(path)) {
spdlog::get("filesystem")
->info(
"The {} directory either doesn't exist or its a file. "
"Continuing...",
path.string());
return;
}
spdlog::get("filesystem")->debug("Deleting '{}'", path.string());
std::filesystem::remove_all(path);
}
void createDir(const std::filesystem::path& path, bool dryrun) {
if (dryrun) {
spdlog::get("filesystem")
->warn("[DRYRUN] Creating '{}'", path.string());
return;
}
spdlog::get("filesystem")->debug("Creating '{}'", path.string());
if (const bool res = std::filesystem::create_directories(path); !res) {
spdlog::get("filesystem")
->warn("Failed to create directory: '{}'", path.string());
}
}
void checkBuildDirs(const BuildType buildType, bool dryrun) {
spdlog::get("filesystem")->debug("Checking 'build' directory.");
if (!std::filesystem::is_directory("build")) {
spdlog::get("filesystem")
->warn("'build' is not a directory. Deleting.");
deleteDir("build", dryrun);
}
if (!std::filesystem::exists("build")) {
spdlog::get("filesystem")->info("Creating 'build' directory");
createDir("build", dryrun);
}
switch (buildType) {
case none:
spdlog::get("filesystem")
->debug("Checking 'build/debug' directory.");
if (!std::filesystem::is_directory("build/debug")) {
spdlog::get("filesystem")
->warn("'build/debug' is not a directory. Deleting.");
deleteDir("build/debug", dryrun);
}
if (!std::filesystem::exists("build/debug")) {
spdlog::get("filesystem")
->info("Creating 'build/debug' directory.");
createDir("build/debug", dryrun);
}
spdlog::get("filesystem")
->debug("Checking 'build/release' directory.");
if (!std::filesystem::is_directory("build/release")) {
spdlog::get("filesystem")
->warn("'build/release' is not a directory. Deleting.");
deleteDir("build/release", dryrun);
}
if (!std::filesystem::exists("build/release")) {
spdlog::get("filesystem")
->info("Creating 'build/release' directory.");
createDir("build/release", dryrun);
}
spdlog::get("filesystem")
->debug("Checking 'build/relwithdeb' directory.");
if (!std::filesystem::is_directory("build/relwithdeb")) {
spdlog::get("filesystem")
->warn("'build/relwithdeb' is not a directory. Deleting.");
deleteDir("build/relwithdeb", dryrun);
}
if (!std::filesystem::exists("build/relwithdeb")) {
spdlog::get("filesystem")
->info("Creating 'build/relwithdeb' directory.");
createDir("build/relwithdeb", dryrun);
}
spdlog::get("filesystem")
->debug("Checking 'build/minsizerel' directory.");
if (!std::filesystem::is_directory("build/minsizerel")) {
spdlog::get("filesystem")
->warn("'build/minsizerel' is not a directory. Deleting.");
deleteDir("build/minsizerel", dryrun);
}
if (!std::filesystem::exists("build/minsizerel")) {
spdlog::get("filesystem")
->info("Creating 'build/minsizerel' directory.");
createDir("build/minsizerel", dryrun);
};
break;
case debug:
spdlog::get("filesystem")
->debug("Checking 'build/debug' directory.");
if (!std::filesystem::is_directory("build/debug")) {
spdlog::get("filsystem")
->warn("'build/debug' is not a directory. Deleting.");
deleteDir("build/debug", dryrun);
}
if (!std::filesystem::exists("build/debug")) {
spdlog::get("filesystem")
->info("Creating 'build/debug' directory.");
createDir("build/debug", dryrun);
}
break;
case release:
spdlog::get("filesystem")
->debug("Checking 'build/release' directory.");
if (!std::filesystem::is_directory("build/release")) {
spdlog::get("filesystem")
->warn("'build/release' is not a directory. Deleting.");
deleteDir("build/release", dryrun);
}
if (!std::filesystem::exists("build/release")) {
spdlog::get("filesystem")
->info("Creating 'build/release' directory.");
createDir("build/release", dryrun);
}
break;
case relwithdeb:
spdlog::get("filesystem")
->debug("Checking 'build/relwithdeb' directory.");
if (!std::filesystem::is_directory("build/relwithdeb")) {
spdlog::get("filesystem")
->warn("'build/relwithdeb' is not a directory. Deleting.");
deleteDir("build/relwithdeb", dryrun);
}
if (!std::filesystem::exists("build/relwithdeb")) {
spdlog::get("filesystem")
->info("Creating 'build/relwithdeb' directory.");
createDir("build/relwithdeb", dryrun);
};
break;
case minsizerel:
spdlog::get("filesystem")
->debug("Checking 'build/minsizerel' directory.");
if (!std::filesystem::is_directory("build/minsizerel")) {
spdlog::get("filesystem")
->warn("'build/minsizerel' is not a directory. Deleting.");
deleteDir("build/minsizerel", dryrun);
}
if (!std::filesystem::exists("build/minsizerel")) {
spdlog::get("filesystem")
->info("Creating 'build/minsizerel' directory.");
createDir("build/minsizerel", dryrun);
};
break;
}
spdlog::get("filesystem")->info("All directories checked.");
}