28 lines
No EOL
928 B
TypeScript
28 lines
No EOL
928 B
TypeScript
import { ANSI } from "../../../../config/apps/terminal.config";
|
|
import { formatError } from "../_utils/terminal.utils";
|
|
import { Command } from "../command";
|
|
import { CommandsManager } from "../commands";
|
|
|
|
export const help = new Command()
|
|
.setExecute(function(this: Command, args) {
|
|
if (args?.length === 0) {
|
|
return CommandsManager.COMMANDS.map((command) => {
|
|
if (command.manual?.purpose) {
|
|
return `${command.name} - ${ANSI.fg.green}${ANSI.decoration.dim}${command.manual.purpose}${ANSI.reset}`;
|
|
} else {
|
|
return command.name;
|
|
}
|
|
}).sort().join("\n");
|
|
}
|
|
|
|
const commandName = (args as string[])[0].toLowerCase();
|
|
const command = CommandsManager.find(commandName);
|
|
|
|
if (!command)
|
|
return formatError(this.name, `${commandName}: Command not found`);
|
|
|
|
if (!command.manual?.purpose)
|
|
return formatError(this.name, `${commandName}: No manual found`);
|
|
|
|
return command.manual.purpose;
|
|
}); |