From 9eb5c214519f282abe312dccbda70d1de2b362dd Mon Sep 17 00:00:00 2001 From: luca0N! Date: Thu, 9 Jun 2022 22:44:44 -0300 Subject: [PATCH] Add help command Added a help command line option that shows command line syntax and available options. --- src/main.cxx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main.cxx b/src/main.cxx index 3efee17..92dd8f5 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -40,6 +40,12 @@ void printUsage(const char *programName) { << std::endl; } +void print_help(const char *program_name) { + printUsage(program_name); + std::cout << " -h, --help\t\tShows this help message.\n" + << " -v, --verbose\t\tPrints additional messages to standard output.\n"; +} + void printIntro() { printf("%s v%s (%d)\nCopyright (C) %s %s\n\n", PROGRAM_NAME, PROGRAM_VERSION_NAME, PROGRAM_VERSION, @@ -60,6 +66,9 @@ int main(int argc, char *argv[]) { if (strcmp(argv[argi], "--verbose") == 0) { verbose = true; std::cout << "Verbose output enabled.\n"; + } else if (strcmp(argv[argi], "--help") == 0) { + print_help(argv[0]); + exit(RETURN_SUCCESSFUL); } else { std::cerr << "error: unknown command line option `" << argv[argi] << "'." << std::endl; @@ -72,9 +81,13 @@ int main(int argc, char *argv[]) { verbose = true; std::cout << "Verbose output enabled.\n"; break; + case 'h': + print_help(argv[0]); + exit(RETURN_SUCCESSFUL); + break; default: - std::cerr << "error: unknown command line option `" << - argv[argi] << "'." << std::endl; + std::cerr << "error: unknown command line option `-" << + argv[argi][i] << "'." << std::endl; exit(RETURN_FAILED_INVALID_SYNTAX); break; }