command: Setup logging before attempting to create Context

This way errors (such as an invalid package type) occurring
during Context creation are printed properly.

Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
David Shah 2018-12-26 16:05:12 +00:00
parent e76479f379
commit 7f69c0f455

View File

@ -77,6 +77,20 @@ bool CommandHandler::executeBeforeContext()
return true;
}
validate();
if (vm.count("quiet")) {
log_streams.push_back(std::make_pair(&std::cerr, LogLevel::WARNING_MSG));
} else {
log_streams.push_back(std::make_pair(&std::cerr, LogLevel::LOG_MSG));
}
if (vm.count("log")) {
std::string logfilename = vm["log"].as<std::string>();
logfile = std::ofstream(logfilename);
if (!logfile)
log_error("Failed to open log file '%s' for writing.\n", logfilename.c_str());
log_streams.push_back(std::make_pair(&logfile, LogLevel::LOG_MSG));
}
return false;
}
@ -130,20 +144,6 @@ void CommandHandler::setupContext(Context *ctx)
ctx->debug = true;
}
if (vm.count("quiet")) {
log_streams.push_back(std::make_pair(&std::cerr, LogLevel::WARNING_MSG));
} else {
log_streams.push_back(std::make_pair(&std::cerr, LogLevel::LOG_MSG));
}
if (vm.count("log")) {
std::string logfilename = vm["log"].as<std::string>();
logfile = std::ofstream(logfilename);
if (!logfile)
log_error("Failed to open log file '%s' for writing.\n", logfilename.c_str());
log_streams.push_back(std::make_pair(&logfile, LogLevel::LOG_MSG));
}
if (vm.count("force")) {
ctx->force = true;
}