From 008d044f73febc117534510e0dd9c9cca217e464 Mon Sep 17 00:00:00 2001 From: theskywinds Date: Mon, 23 Jun 2025 12:52:33 +0200 Subject: [PATCH] Implemented a prototype for selecting time format --- src/main.cpp | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index fa3954e..1e54f0b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,7 +6,7 @@ public: MyFormatter() : Formatter() {} std::string make_usage([[maybe_unused]] const CLI::App *app, [[maybe_unused]] std::string name) const override { return "USAGE: " + name + " [OPTIONS]"; - }; + } }; int main(int argc, char **argv) { @@ -14,15 +14,32 @@ int main(int argc, char **argv) { auto fmt = std::make_shared(); app.formatter(fmt); - int p = 0; - app.add_option("-p", p, "Parameter"); + char timeFormat {}; + + app.add_option("-f, --format", timeFormat, "Dictates which format to output as") + ->multi_option_policy (CLI::MultiOptionPolicy::Throw) + ->default_val('f'); CLI11_PARSE(app, argc, argv); - [[maybe_unused]] std::time_t result = std::time(nullptr); - std::tm time = *std::localtime(&result); - std::cout << std::asctime(&time); + try { + if (timeFormat != 'F' && timeFormat != 'f' && + timeFormat != 'D' && timeFormat != 'd' && + timeFormat != 'T' && timeFormat != 't' && + timeFormat != 'R') { + throw std::invalid_argument("Invalid format selected"); + } + } catch (const std::invalid_argument& e) { + std::cerr << "Error: " << e.what() << std::endl; + std::exit(EXIT_FAILURE); + } - std::cout << "Parameter value: " << p << std::endl; + std::time_t result = std::time(nullptr); + std::tm currentTime = *std::localtime(&result); + std::tm resultTime = currentTime; + + std::cout << std::asctime(&resultTime); + + std::cout << "Parameter value: " << timeFormat << std::endl; return 0; -} +} \ No newline at end of file