From 3c0df74643b83f1362b1053082c5e27a96f2c6e3 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Tue, 21 Mar 2017 20:26:02 -0700 Subject: [PATCH] Add additional points to configure help output Summary: Sometimes tools need to output a little more help context before or after help. Reviewed By: yfeldblum Differential Revision: D4719112 fbshipit-source-id: e6f59312d722e0669053644d862c81758855b538 --- folly/experimental/NestedCommandLineApp.cpp | 19 +++++++++++++------ folly/experimental/NestedCommandLineApp.h | 4 ++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/folly/experimental/NestedCommandLineApp.cpp b/folly/experimental/NestedCommandLineApp.cpp index 8904f3c7..4b376df4 100644 --- a/folly/experimental/NestedCommandLineApp.cpp +++ b/folly/experimental/NestedCommandLineApp.cpp @@ -48,11 +48,15 @@ ProgramExit::ProgramExit(int status, const std::string& msg) NestedCommandLineApp::NestedCommandLineApp( std::string programName, std::string version, + std::string programHeading, + std::string programHelpFooter, InitFunction initFunction) - : programName_(std::move(programName)), - version_(std::move(version)), - initFunction_(std::move(initFunction)), - globalOptions_("Global options") { + : programName_(std::move(programName)), + programHeading_(std::move(programHeading)), + programHelpFooter_(std::move(programHelpFooter)), + version_(std::move(version)), + initFunction_(std::move(initFunction)), + globalOptions_("Global options") { addCommand("help", "[command]", "Display help (globally or for a given command)", "Displays help (globally or for a given command).", @@ -101,8 +105,10 @@ void NestedCommandLineApp::displayHelp( if (args.empty()) { // General help printf( - "Usage: %s [global_options...] [command_options...] " - "[command_args...]\n\n", programName_.c_str()); + "%s\nUsage: %s [global_options...] [command_options...] " + "[command_args...]\n\n", + programHeading_.c_str(), + programName_.c_str()); std::cout << globalOptions_; printf("\nAvailable commands:\n"); @@ -126,6 +132,7 @@ void NestedCommandLineApp::displayHelp( int(maxLen), p.first.c_str(), resolveAlias(p.second).c_str()); } } + std::cout << "\n" << programHelpFooter_ << "\n"; } else { // Help for a given command auto& p = findCommand(args.front()); diff --git a/folly/experimental/NestedCommandLineApp.h b/folly/experimental/NestedCommandLineApp.h index 3280b61c..b4a9865d 100644 --- a/folly/experimental/NestedCommandLineApp.h +++ b/folly/experimental/NestedCommandLineApp.h @@ -67,6 +67,8 @@ class NestedCommandLineApp { explicit NestedCommandLineApp( std::string programName = std::string(), std::string version = std::string(), + std::string programHeading = std::string(), + std::string programHelpFooter = std::string(), InitFunction initFunction = InitFunction()); /** @@ -142,6 +144,8 @@ class NestedCommandLineApp { const std::vector& args); std::string programName_; + std::string programHeading_; + std::string programHelpFooter_; std::string version_; InitFunction initFunction_; boost::program_options::options_description globalOptions_; -- 2.34.1