// // Created by quentin on 8/13/22. // #include #include "mainOptHandler.h" using namespace Budget::OptHandlers; MainOptHandler::MainOptHandler(const std::vector &argv) : OptHandler(argv) {} void MainOptHandler::parse() { struct option longOpts[] = { {"help", no_argument, nullptr, 'h'}, {"account", no_argument, nullptr, 'a'}, }; while (true) { int opt = getopt_long(getArgc(), getArgv(), "ha", longOpts, nullptr); if (opt == -1) { break; } switch (opt) { case 'h': setOpts.help = true; break; case 'a': setOpts.account = true; setOpts.accountArgStart = optind - 1; return; case '?': setOpts.help = true; setOpts.helpOut = stderr; break; default: break; } } } void MainOptHandler::help() { fprintf(setOpts.helpOut, "Help budget {-ha}\n"); fprintf(setOpts.helpOut, " -h --help Output this message.\n"); fprintf(setOpts.helpOut, " -a --account Do budget -a -h for more info.\n"); } const MainOptHandler::SetOpts *MainOptHandler::getSetOpts() const { return &setOpts; }