budget/src/main.cpp

55 lines
1.6 KiB
C++
Raw Normal View History

2022-08-04 18:22:48 -05:00
//
// Created by quentin on 8/3/22.
//
#include "main.h"
#include "data/accountData.h"
#include "optHandlers/accountOptHandler.h"
#include "optHandlers/mainOptHandler.h"
2022-08-04 18:22:48 -05:00
#include <pwd.h>
#include <unistd.h>
#include <string>
#include <filesystem>
#include <list>
#include <getopt.h>
using namespace Budget;
const std::string homeDirectory = getpwuid(getuid())->pw_dir;
void createRequiredFolders() {
std::filesystem::create_directory(homeDirectory + "/.config/budget/");
std::filesystem::create_directories(homeDirectory + "/.local/share/budget");
std::filesystem::create_directories(homeDirectory + "/.local/share/budget/accounts");
std::filesystem::create_directories(homeDirectory + "/.local/share/budget/receipts");
}
int main(int argc, char *argv[]) {
std::vector<char *> args(argv, argv + argc);
OptHandlers::MainOptHandler mainOptHandler(args);
mainOptHandler.parse();
if (mainOptHandler.getSetOpts()->help)
mainOptHandler.help();
if (mainOptHandler.getSetOpts()->account) {
std::vector<char *> vec{argv[0]};
vec.insert(vec.end(), args.begin() + mainOptHandler.getSetOpts()->accountArgStart, args.end());
OptHandlers::AccountOptHandler accountOptHandler(vec);
accountOptHandler.parse();
if (accountOptHandler.getSetOpts()->help) {
accountOptHandler.help();
}
}
createRequiredFolders();
// Read all accounts saved and store them in accounts
std::list<AccountData> accounts;
for (const auto &file : std::filesystem::directory_iterator(
homeDirectory + "/.local/share/budget/accounts")) {
accounts.emplace_back(AccountData(file.path()));
}
return 0;
}