ProzillaOS/packages/apps/terminal/core/commands/help.ts
2024-06-16 21:46:44 +02:00

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;
});