소스 검색

LibCore: Offer to display a general description

Ben Wiederhake 4 년 전
부모
커밋
52a8062084
2개의 변경된 파일8개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      Libraries/LibCore/ArgsParser.cpp
  2. 3 0
      Libraries/LibCore/ArgsParser.h

+ 5 - 0
Libraries/LibCore/ArgsParser.cpp

@@ -206,6 +206,11 @@ void ArgsParser::print_usage(FILE* file, const char* argv0)
     }
     outln(file);
 
+    if (m_general_help != nullptr && m_general_help[0] != '\0') {
+        outln(file, "\nDescription:");
+        outln(file, m_general_help);
+    }
+
     if (!m_options.is_empty())
         outln(file, "\nOptions:");
     for (auto& opt : m_options) {

+ 3 - 0
Libraries/LibCore/ArgsParser.h

@@ -67,6 +67,8 @@ public:
     };
 
     bool parse(int argc, char** argv, bool exit_on_failure = true);
+    // *Without* trailing newline!
+    void set_general_help(const char* help_string) { m_general_help = help_string; };
     void print_usage(FILE*, const char* argv0);
 
     void add_option(Option&&);
@@ -86,6 +88,7 @@ private:
     Vector<Arg> m_positional_args;
 
     bool m_show_help { false };
+    const char* m_general_help { nullptr };
 };
 
 }