diff --git a/Userland/Libraries/LibCore/ArgsParser.cpp b/Userland/Libraries/LibCore/ArgsParser.cpp index 9685801343..fc7d134cbc 100644 --- a/Userland/Libraries/LibCore/ArgsParser.cpp +++ b/Userland/Libraries/LibCore/ArgsParser.cpp @@ -28,6 +28,7 @@ namespace Core { ArgsParser::ArgsParser() { add_option(m_show_help, "Display this message", "help", 0); + add_option(m_show_version, "Print version", "version", 0); } bool ArgsParser::parse(int argc, char* const* argv, FailureBehavior failure_behavior) @@ -153,7 +154,13 @@ bool ArgsParser::parse(int argc, char* const* argv, FailureBehavior failure_beha } // We're done parsing! :) - // Now let's show help if requested. + // Now let's show version or help if requested. + if (m_show_version) { + outln(stdout, "git"); + if (failure_behavior == FailureBehavior::Exit || failure_behavior == FailureBehavior::PrintUsageAndExit) + exit(0); + return false; + } if (m_show_help) { print_usage(stdout, argv[0]); if (failure_behavior == FailureBehavior::Exit || failure_behavior == FailureBehavior::PrintUsageAndExit) diff --git a/Userland/Libraries/LibCore/ArgsParser.h b/Userland/Libraries/LibCore/ArgsParser.h index 66c0493efe..fdb1e0612f 100644 --- a/Userland/Libraries/LibCore/ArgsParser.h +++ b/Userland/Libraries/LibCore/ArgsParser.h @@ -83,6 +83,7 @@ private: Vector m_positional_args; bool m_show_help { false }; + bool m_show_version { false }; const char* m_general_help { nullptr }; bool m_stop_on_first_non_option { false }; };