diff options
| author | KiritoDv <kiritodev01@gmail.com> | 2024-01-31 11:58:51 -0600 |
|---|---|---|
| committer | Lywx <kiritodev01@gmail.com> | 2024-01-31 12:05:40 -0600 |
| commit | f4990f508e78eab33b071961fadb7d07f1598330 (patch) | |
| tree | aa80e00285c01bab3b1acdc91ce02da1f341bf48 /src/main.cpp | |
| parent | 7c93abed9a0fd82de1b5b05abf27e60d245c3509 (diff) | |
Fixed cli arguments to match new behavior
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 64 |
1 files changed, 42 insertions, 22 deletions
diff --git a/src/main.cpp b/src/main.cpp index c39ff8c..173fe79 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,46 +16,66 @@ int main(int argc, char *argv[]) { std::string folder; bool otrMode = false; bool debug = false; - bool header = false; app.require_subcommand(); /* Generate an OTR */ - auto otr = app.add_subcommand("otr", "OTR - Generates an otr\n"); + const auto otr = app.add_subcommand("otr", "OTR - Generates an otr\n"); otr->add_option("<baserom.z64>", filename, "")->required()->check(CLI::ExistingFile); - - otr->add_flag("-t,--target", target, "OTR output destination"); - otr->add_flag("-o,--otr", otrMode, "OTR Mode"); - otr->add_flag("-d,--dir", folder, "Generate OTR from a directory of assets"); - otr->add_flag("-z,--zeader", header, "Generates a header"); otr->add_flag("-v,--verbose", debug, "Verbose Debug Mode"); - otr->parse_complete_callback([&]() { - auto instance = Companion::Instance = new Companion(filename, otrMode, debug); - - if (header) { - instance->Init(ExportType::Header); - } else { - instance->Init(ExportType::Binary); - } - - if (!folder.empty()) { - Companion::Pack(folder, target); - } + otr->parse_complete_callback([&] { + const auto instance = Companion::Instance = new Companion(filename, true, debug); + instance->Init(ExportType::Binary); }); /* Generate C code */ - auto code = app.add_subcommand("code", "Code - Generates C code\n"); + const auto code = app.add_subcommand("code", "Code - Generates C code\n"); code->add_option("<baserom.z64>", filename, "")->required()->check(CLI::ExistingFile); - code->add_flag("-v,--verbose", debug, "Verbose Debug Mode; adds offsets to C code"); + code->parse_complete_callback([&]() { - auto instance = Companion::Instance = new Companion(filename, otrMode, debug); + const auto instance = Companion::Instance = new Companion(filename, false, debug); instance->Init(ExportType::Code); }); + /* Generate a binary */ + const auto binary = app.add_subcommand("binary", "Binary - Generates a binary\n"); + + binary->add_option("<baserom.z64>", filename, "")->required()->check(CLI::ExistingFile); + + binary->parse_complete_callback([&] { + const auto instance = Companion::Instance = new Companion(filename, false, debug); + instance->Init(ExportType::Binary); + }); + + /* Generate headers */ + const auto header = app.add_subcommand("header", "Header - Generates headers only\n"); + + header->add_option("<baserom.z64>", filename, "")->required()->check(CLI::ExistingFile); + header->add_flag("-o,--otr", otrMode, "OTR Mode"); + + header->parse_complete_callback([&] { + const auto instance = Companion::Instance = new Companion(filename, otrMode, debug); + instance->Init(ExportType::Header); + }); + + /* Pack an otr from a folder */ + const auto pack = app.add_subcommand("pack", "Pack - Packs an otr from a folder\n"); + + pack->add_option("<folder>", folder, "Generate OTR from a directory of assets")->required()->check(CLI::ExistingDirectory); + pack->add_option("<target>", target, "OTR output destination")->required(); + + pack->parse_complete_callback([&] { + if (!folder.empty()) { + Companion::Pack(folder, target); + } else { + std::cout << "The folder is empty" << std::endl; + } + }); + try { app.parse(argc, argv); } catch (const CLI::ParseError &e) { |
