#ifndef GMX_COMMANDLINE_CMDLINEHELPMODULE_H
#define GMX_COMMANDLINE_CMDLINEHELPMODULE_H
-#include "cmdlinemodule.h"
-#include "cmdlinemodulemanager-impl.h"
-
+#include "gromacs/commandline/cmdlinemodule.h"
#include "gromacs/onlinehelp/helptopicinterface.h"
#include "gromacs/utility/common.h"
+#include "cmdlinemodulemanager-impl.h"
+
namespace gmx
{
class CommandLineHelpContext;
-class ProgramInfo;
+class File;
+class ProgramContextInterface;
class CommandLineHelpModuleImpl;
/*! \brief
* Creates a command-line help module.
*
- * \param[in] programInfo Information about the running binary.
- * \param[in] binaryName Name of the running binary
+ * \param[in] programContext Information about the running binary.
+ * \param[in] binaryName Name of the running binary
* (without Gromacs binary suffix or .exe on Windows).
* \param[in] modules List of modules for to use for module listings.
* \param[in] groups List of module groups.
* \throws std::bad_alloc if out of memory.
*/
- CommandLineHelpModule(const ProgramInfo &programInfo,
+ CommandLineHelpModule(const ProgramContextInterface &programContext,
const std::string &binaryName,
const CommandLineModuleMap &modules,
const CommandLineModuleGroupList &groups);
*/
void setModuleOverride(const CommandLineModuleInterface &module);
+ /*! \brief
+ * Sets a file to write help output to instead of default `stdout`.
+ *
+ * Used for unit testing; see
+ * CommandLineModuleManager::setOutputRedirect() for more details.
+ */
+ void setOutputRedirect(File *output);
+
virtual const char *name() const { return "help"; }
virtual const char *shortDescription() const
{
return "Print help information";
}
+ virtual void init(CommandLineModuleSettings *settings)
+ {
+ settings->setDefaultNiceLevel(0);
+ }
virtual int run(int argc, char *argv[]);
virtual void writeHelp(const CommandLineHelpContext &context) const;