2022-08-13 18:42:16 -05:00
|
|
|
//
|
|
|
|
// Created by quentin on 8/13/22.
|
|
|
|
//
|
|
|
|
|
2022-09-05 20:38:07 -05:00
|
|
|
#include <iostream>
|
2022-08-13 18:42:16 -05:00
|
|
|
#include "mainOptHandler.h"
|
|
|
|
|
|
|
|
using namespace Budget::OptHandlers;
|
|
|
|
|
|
|
|
|
|
|
|
MainOptHandler::MainOptHandler(const std::vector<char *> &argv) : OptHandler(argv) {}
|
|
|
|
|
|
|
|
void MainOptHandler::parse() {
|
|
|
|
struct option longOpts[] = {
|
2022-08-14 12:48:02 -05:00
|
|
|
{"help", no_argument, nullptr, 'h'},
|
2022-08-13 18:42:16 -05:00
|
|
|
{"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;
|
2022-08-14 12:48:02 -05:00
|
|
|
setOpts.accountArgStart = optind - 1;
|
|
|
|
return;
|
2022-08-13 18:42:16 -05:00
|
|
|
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");
|
|
|
|
}
|
|
|
|
|
2022-08-14 12:48:02 -05:00
|
|
|
const MainOptHandler::SetOpts *MainOptHandler::getSetOpts() const {
|
2022-08-13 18:42:16 -05:00
|
|
|
return &setOpts;
|
|
|
|
}
|