blob: 121db116bff7bc7ba24879c4dea4572ee642b50f [file] [log] [blame]
name = "help";
group = "void";
shortDescription = "Print list of commands";
longDescription = "";
argumentTypes = [ "command-or-group-name" ];
function execute() {
if (arguments.length == 0) {
var groups = getCommandGroups();
message("List of command categories:");
message("");
for (var name in groups) {
if (name == "void")
continue;
var data = groups[name];
message(name + " :: " + data.shortDescription);
}
message("");
message("Type \"help\" followed by a category name for a list of commands in that category.");
message("Type \"help all\" for the list of all commands.");
message("Type \"help\" followed by a command name for full documentation.");
message("Command name abbreviations are allowed if they are unambiguous.");
} else {
var arg = arguments[0];
if (arg == "all") {
var groups = getCommandGroups();
for (var name in groups) {
if (name == "void")
continue;
message("Command category: " + name);
message("");
var commands = getCommandsInGroup(name);
for (var i = 0; i < commands.length; ++i) {
var data = commands[i];
message(data.name + " :: " + data.shortDescription);
}
message("");
}
} else {
var data = findCommand(arg);
if (data != undefined) {
message(data.shortDescription + ".");
if (data.longDescription.length != 0)
message(data.longDescription);
if (data.aliases.length != 0)
message("Aliases: " + data.aliases.join(", "));
if (data.seeAlso.length != 0)
message("See also: " + data.seeAlso.join(", "));
} else {
data = getCommandGroups()[arg];
if (data != undefined) {
message(data.shortDescription + ".");
message("");
message("List of commands:");
message("");
var commands = getCommandsInGroup(arg);
for (var i = 0; i < commands.length; ++i) {
var data = commands[i];
message(data.name + " :: " + data.shortDescription);
}
} else {
message("Undefined command \"" + arg + "\". Try \"help\".");
}
}
}
}
};