52 lines
1.0 KiB
C++
52 lines
1.0 KiB
C++
|
//
|
||
|
// Created by quentin on 8/13/22.
|
||
|
//
|
||
|
|
||
|
#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'},
|
||
|
{ nullptr }
|
||
|
};
|
||
|
|
||
|
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;
|
||
|
break;
|
||
|
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 SetOpts *MainOptHandler::getSetOpts() const {
|
||
|
return &setOpts;
|
||
|
}
|