mirror of
https://github.com/matrix-construct/construct
synced 2024-06-05 03:28:56 +02:00
modules/console: Improve bad command error format; improve subcommands display.
This commit is contained in:
parent
cd6eb8ed0a
commit
314dacdce0
|
@ -278,7 +278,15 @@ catch(const std::out_of_range &e)
|
||||||
}
|
}
|
||||||
catch(const bad_command &e)
|
catch(const bad_command &e)
|
||||||
{
|
{
|
||||||
std::cerr << "Bad command or file name: " << e.what() << std::endl;
|
const ircd::string_view what(e.what());
|
||||||
|
|
||||||
|
std::cerr << "\nBad command";
|
||||||
|
if(what)
|
||||||
|
std::cerr << " :" << what;
|
||||||
|
else
|
||||||
|
std::cerr << '.';
|
||||||
|
|
||||||
|
std::cerr << std::endl;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch(const http::error &e)
|
catch(const http::error &e)
|
||||||
|
|
|
@ -410,7 +410,7 @@ console_cmd__help(opt &out, const string_view &line)
|
||||||
find_cmd(line)
|
find_cmd(line)
|
||||||
};
|
};
|
||||||
|
|
||||||
if(cmd)
|
if(cmd && (false))
|
||||||
{
|
{
|
||||||
out << "No help available for '" << cmd->name << "'."
|
out << "No help available for '" << cmd->name << "'."
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
|
@ -418,15 +418,13 @@ console_cmd__help(opt &out, const string_view &line)
|
||||||
//TODO: help string symbol map
|
//TODO: help string symbol map
|
||||||
}
|
}
|
||||||
|
|
||||||
out << "\nSubcommands available:\n"
|
|
||||||
<< std::endl;
|
|
||||||
|
|
||||||
const size_t elems
|
const size_t elems
|
||||||
{
|
{
|
||||||
std::min(token_count(line, ' '), cmd::MAX_DEPTH)
|
std::min(token_count(line, ' '), cmd::MAX_DEPTH)
|
||||||
};
|
};
|
||||||
|
|
||||||
size_t num(0);
|
std::vector<string_view> subs;
|
||||||
|
subs.reserve(128);
|
||||||
for(size_t e(elems+1); e > 0; --e)
|
for(size_t e(elems+1); e > 0; --e)
|
||||||
{
|
{
|
||||||
const auto name
|
const auto name
|
||||||
|
@ -461,17 +459,29 @@ console_cmd__help(opt &out, const string_view &line)
|
||||||
e > 1? tokens_after(prefix, ' ', e - 2) : prefix
|
e > 1? tokens_after(prefix, ' ', e - 2) : prefix
|
||||||
};
|
};
|
||||||
|
|
||||||
if(empty(suffix))
|
if(!empty(suffix))
|
||||||
continue;
|
subs.emplace_back(suffix);
|
||||||
|
|
||||||
out << std::left << std::setw(20) << suffix;
|
|
||||||
if(++num % 4 == 0)
|
|
||||||
out << std::endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!subs.empty())
|
||||||
|
{
|
||||||
|
out << "\nSubcommands available:\n" << std::endl;
|
||||||
|
|
||||||
|
size_t num(0);
|
||||||
|
for(size_t i(0); i < subs.size(); ++i)
|
||||||
|
{
|
||||||
|
out << std::left << std::setw(20) << subs.at(i);
|
||||||
|
if(++num % 4 == 0)
|
||||||
|
out << '\n';
|
||||||
|
}
|
||||||
|
|
||||||
|
if(num % 4 != 0)
|
||||||
|
out << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue