mason/src/main.cpp

55 lines
1.5 KiB
C++
Raw Permalink Normal View History

2023-08-30 20:54:59 +00:00
#include <string>
2023-09-27 23:30:57 +00:00
#include "collection.h"
#include "taskmanager.h"
#include "loggger.h"
2023-08-27 17:55:04 +00:00
int main(int argc, char *argv[]) {
2023-08-30 20:54:59 +00:00
std::string firstArg;
2023-09-01 21:39:24 +00:00
std::string secondArg;
std::string thirdArg;
2023-08-30 20:54:59 +00:00
if (argc > 1)
firstArg = argv[1];
else
firstArg = "./";
2023-09-01 21:39:24 +00:00
if (argc > 2)
secondArg = argv[2];
else
secondArg = "./";
if (argc > 3)
thirdArg = argv[3];
else
thirdArg = "";
2023-08-30 20:54:59 +00:00
std::shared_ptr<Logger> logger = std::make_shared<Logger>(Logger::Severity::info);
std::shared_ptr<TaskManager> taskManager = std::make_shared<TaskManager>(logger);
2023-09-29 21:09:09 +00:00
std::shared_ptr<Collection> collection = std::make_shared<Collection>(
firstArg,
secondArg,
thirdArg,
2023-09-29 21:09:09 +00:00
logger,
taskManager
);
2023-08-30 20:54:59 +00:00
2023-09-27 23:30:57 +00:00
taskManager->start();
taskManager->wait();
taskManager->stop();
2023-09-01 21:39:24 +00:00
2023-09-30 20:13:44 +00:00
if (collection->success()) {
2023-09-29 21:09:09 +00:00
logger->log(Logger::Severity::info, "Successfully built " + firstArg);
return 0;
} else {
logger->log(Logger::Severity::error, "Failed to build " + firstArg);
2023-09-30 20:13:44 +00:00
logger->log(Logger::Severity::info, "Success: " + std::to_string(collection->sourcesSuccess()));
2023-09-29 21:09:09 +00:00
logger->log(Logger::Severity::info, "Failed: " + std::to_string(collection->sourcesError()));
logger->log(Logger::Severity::info, "Unfinished: " + std::to_string(collection->sourcesPending()));
2023-09-30 20:13:44 +00:00
logger->log(Logger::Severity::info, "Total: " + std::to_string(collection->sourcesTotal()));
2023-09-29 21:09:09 +00:00
return -1;
}
return -2;
2023-08-27 17:55:04 +00:00
}