mason/src/main.cpp

55 lines
1.5 KiB
C++

#include <string>
#include "collection.h"
#include "taskmanager.h"
#include "loggger.h"
int main(int argc, char *argv[]) {
std::string firstArg;
std::string secondArg;
std::string thirdArg;
if (argc > 1)
firstArg = argv[1];
else
firstArg = "./";
if (argc > 2)
secondArg = argv[2];
else
secondArg = "./";
if (argc > 3)
thirdArg = argv[3];
else
thirdArg = "";
std::shared_ptr<Logger> logger = std::make_shared<Logger>(Logger::Severity::info);
std::shared_ptr<TaskManager> taskManager = std::make_shared<TaskManager>(logger);
std::shared_ptr<Collection> collection = std::make_shared<Collection>(
firstArg,
secondArg,
thirdArg,
logger,
taskManager
);
taskManager->start();
taskManager->wait();
taskManager->stop();
if (collection->success()) {
logger->log(Logger::Severity::info, "Successfully built " + firstArg);
return 0;
} else {
logger->log(Logger::Severity::error, "Failed to build " + firstArg);
logger->log(Logger::Severity::info, "Success: " + std::to_string(collection->sourcesSuccess()));
logger->log(Logger::Severity::info, "Failed: " + std::to_string(collection->sourcesError()));
logger->log(Logger::Severity::info, "Unfinished: " + std::to_string(collection->sourcesPending()));
logger->log(Logger::Severity::info, "Total: " + std::to_string(collection->sourcesTotal()));
return -1;
}
return -2;
}