feat: update cli for BMapInspector
This commit is contained in:
@@ -8,31 +8,61 @@
|
||||
#include <yycc/string/op.hpp>
|
||||
#include <yycc/patch/stream.hpp>
|
||||
#include <iostream>
|
||||
#include <optional>
|
||||
|
||||
using namespace yycc::patch::stream;
|
||||
namespace strop = yycc::string::op;
|
||||
namespace termcolor = yycc::carton::termcolor;
|
||||
|
||||
static bool ProcessCli() {
|
||||
|
||||
}
|
||||
|
||||
static void LoadVirtools() {
|
||||
|
||||
}
|
||||
|
||||
static void CheckRules() {
|
||||
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
// Show splash
|
||||
static void PrintSplash() {
|
||||
std::cout << termcolor::colored(u8"" BMAPINSP_NAME, termcolor::Color::LightYellow)
|
||||
<< " (based on LibCmo " LIBCMO_VER_STR ") built at " __DATE__ " " __TIME__ << std::endl
|
||||
<< u8"" BMAPINSP_DESC << std::endl
|
||||
<< std::endl;
|
||||
<< u8"" BMAPINSP_DESC << std::endl;
|
||||
}
|
||||
|
||||
static std::optional<BMapInspector::Cli::Args> AcceptArgs() {
|
||||
auto request = BMapInspector::Cli::parse();
|
||||
if (request.has_value()) {
|
||||
return request.value();
|
||||
} else {
|
||||
using BMapInspector::Cli::Error;
|
||||
|
||||
std::u8string bad_words;
|
||||
switch (request.error()) {
|
||||
case Error::BadParse:
|
||||
bad_words = u8"Can not parse given command line argument."; break;
|
||||
case Error::NoFile:
|
||||
bad_words = u8"You must specify a file for checking.";
|
||||
break;
|
||||
case Error::BadFile:
|
||||
bad_words = u8"Your specified file is invalid.";
|
||||
break;
|
||||
case Error::NoBallance:
|
||||
bad_words = u8"You must specify Ballance root directory for finding resources.";
|
||||
break;
|
||||
case Error::BadBallance:
|
||||
bad_words = u8"Your specified Ballance root directory is invalid.";
|
||||
break;
|
||||
case Error::BadEncoding:
|
||||
bad_words = u8"Your specified encoding name is invalid.";
|
||||
break;
|
||||
case Error::BadLevel:
|
||||
bad_words = u8"Your specified report level filter name is invalid.";
|
||||
break;
|
||||
default:
|
||||
bad_words = u8"Unknown error.";
|
||||
break;
|
||||
}
|
||||
|
||||
termcolor::cprintln(bad_words, termcolor::Color::Red);
|
||||
termcolor::cprintln(u8"Please browse manual or use -h switch to see help first.", termcolor::Color::Red);
|
||||
return std::nullopt;
|
||||
}
|
||||
}
|
||||
|
||||
static void LoadVirtools() {}
|
||||
|
||||
static void CheckRules() {
|
||||
// Create reporter
|
||||
BMapInspector::Reporter reporter;
|
||||
|
||||
@@ -40,13 +70,21 @@ int main(int argc, char *argv[]) {
|
||||
BMapInspector::Ruleset::RuleCollection rule_collection;
|
||||
// Show rule infos
|
||||
std::cout << strop::printf(u8"Total %" PRIuSIZET " rule(s) are loaded.", rule_collection.GetRuleCount()) << std::endl
|
||||
<< u8"Check may take few minutes. Please do not close this console..." << std::endl
|
||||
<< std::endl;
|
||||
|
||||
<< u8"Check may take few minutes. Please do not close this console..." << std::endl;
|
||||
|
||||
// Show report conclusion
|
||||
reporter.PrintConclusion();
|
||||
// Print report in detail
|
||||
reporter.PrintReport();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
auto args = AcceptArgs();
|
||||
if (args.has_value()) {
|
||||
PrintSplash();
|
||||
std::cout << std::endl;
|
||||
|
||||
CheckRules();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user