budget/src/optHandlers/mainOptHandler.cpp

52 lines
1.1 KiB
C++
Raw Normal View History

//
// Created by quentin on 8/13/22.
//
2022-09-05 20:38:07 -05:00
#include <iostream>
#include "mainOptHandler.h"
using namespace Budget::OptHandlers;
MainOptHandler::MainOptHandler(const std::vector<char *> &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;
}