// // Created by quentin on 8/3/22. // #include "optHandlers/mainOptHandler.h" #include "exceptions/helpRequested.h" #include "exceptions/badValue.h" #include #include #include #include #include #include using namespace Budget; const std::string homeDirectory = getpwuid(getuid())->pw_dir; const std::string configD = homeDirectory + "/.config/budget/"; const std::string storageD = homeDirectory + "/.local/share/budget/"; const std::string databaseFile = homeDirectory + "/.local/share/budget/budget.sqlite"; void createRequiredFolders() { std::filesystem::create_directory(configD); std::filesystem::create_directories(storageD); std::filesystem::create_directories(storageD + "receipts"); } int main(int argc, char *argv[]) { sqlite3 *db; int rc; rc = sqlite3_open(databaseFile.c_str(), &db); if (rc != SQLITE_OK) { throw std::runtime_error("Error opening database connection."); } std::vector args(argv, argv + argc); try { OptHandlers::MainOptHandler moh(args, db); std::queue> *opts = &moh.operations; while (!opts->empty()) { opts->front()->commit(); opts->pop(); } } catch (const Budget::Exceptions::HelpRequested &e) { return 0; } catch (const Budget::Exceptions::BadValue &e) { std::cout << e.what() << std::endl; return 1; } sqlite3_close_v2(db); return 0; }