mirror of
https://github.com/monero-project/monero.git
synced 2025-05-05 23:24:58 -04:00
Added command descriptions
This commit is contained in:
parent
8a8c918dc3
commit
287dde63d8
6 changed files with 376 additions and 114 deletions
|
@ -456,29 +456,35 @@ eof:
|
|||
class command_handler {
|
||||
public:
|
||||
typedef boost::function<bool (const std::vector<std::string> &)> callback;
|
||||
typedef std::map<std::string, std::pair<callback, std::string> > lookup;
|
||||
typedef std::map<std::string, std::pair<callback, std::pair<std::string, std::string>>> lookup;
|
||||
|
||||
std::string get_usage()
|
||||
{
|
||||
std::stringstream ss;
|
||||
size_t max_command_len = 0;
|
||||
for(auto& x:m_command_handlers)
|
||||
if(x.first.size() > max_command_len)
|
||||
max_command_len = x.first.size();
|
||||
|
||||
for(auto& x:m_command_handlers)
|
||||
{
|
||||
ss.width(max_command_len + 3);
|
||||
ss << std::left << x.first << x.second.second << ENDL;
|
||||
ss << x.second.second.first << ENDL;
|
||||
}
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
void set_handler(const std::string& cmd, const callback& hndlr, const std::string& usage = "")
|
||||
std::pair<std::string, std::string> get_documentation(const std::vector<std::string>& cmd)
|
||||
{
|
||||
if(cmd.empty())
|
||||
return std::make_pair("", "");
|
||||
auto it = m_command_handlers.find(cmd.front());
|
||||
if(it == m_command_handlers.end())
|
||||
return std::make_pair("", "");
|
||||
return it->second.second;
|
||||
}
|
||||
|
||||
void set_handler(const std::string& cmd, const callback& hndlr, const std::string& usage = "", const std::string& description = "")
|
||||
{
|
||||
lookup::mapped_type & vt = m_command_handlers[cmd];
|
||||
vt.first = hndlr;
|
||||
vt.second = usage;
|
||||
vt.second.first = description.empty() ? cmd : usage;
|
||||
vt.second.second = description.empty() ? usage : description;
|
||||
#ifdef HAVE_READLINE
|
||||
rdln::readline_buffer::add_completion(cmd);
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue