Add flag parsing functionality and implement global flag registry

This commit is contained in:
scawful
2025-01-19 22:53:35 -05:00
parent e0797fee24
commit 31fc641dc4
2 changed files with 205 additions and 0 deletions

View File

@@ -8,8 +8,13 @@
#include <vector>
#include "cli/tui.h"
#include "util/flag.h"
#include "util/macro.h"
DECLARE_FLAG(std::string, rom_file);
DEFINE_FLAG(std::string, rom_file, "", "The ROM file to load.");
namespace yaze {
/**
* @namespace yaze::cli
@@ -87,6 +92,19 @@ int RunCommandHandler(int argc, char *argv[]) {
} // namespace yaze
int main(int argc, char *argv[]) {
std::vector<std::string> tokens;
for (int i = 0; i < argc; i++) {
tokens.emplace_back(argv[i]);
}
yaze::util::FlagParser flag_parser(yaze::util::global_flag_registry());
try {
flag_parser.Parse(&tokens);
} catch (const std::exception &e) {
std::cerr << "Error parsing flags: " << e.what() << std::endl;
return EXIT_FAILURE;
}
yaze::cli::ShowMain();
return EXIT_SUCCESS;
// return yaze::cli::RunCommandHandler(argc, argv);