🧩 Como Criar Comandos Personalizados - RafaPear/CLILib GitHub Wiki
Um dos pontos fortes do CLILib é a facilidade com que podes criar os teus próprios comandos. Basta implementar a interface Command
com os campos obrigatórios e o comportamento que pretendes.
object HelloCmd : Command {
override val description = "Diz olá ao utilizador"
override val usage = "hello <nome>"
override val aliases = listOf("hello", "hi")
override val minArgs = 1
override val maxArgs = 1
override fun run(args: List<String>): Boolean {
println("Olá, ${args[0]}!")
return true
}
}
Depois, basta registar o comando:
CmdRegister.register(HelloCmd)
-
description
: descrição curta do comando -
usage
: como se usa o comando (exibido nohelp
) -
aliases
: nomes pelos quais o comando pode ser chamado -
run(args: List<String>)
: lógica de execução
-
minArgs
/maxArgs
— define número de argumentos esperados -
requiresFile
/fileExtension
— valida caminhos de ficheiro -
commands
— define subcomandos ou flags (ex:-h
,--list
) -
longDescription
— descrição mais detalhada, mostrada nohelp <comando>
Também podes criar comandos simples com um ficheiro .json
usando mkcmd
.
mkcmd exemplo.json
Exemplo de ficheiro exemplo.json
:
{
"description": "Exemplo de comando via JSON",
"longDescription": "Este comando foi criado a partir de um ficheiro JSON.",
"usage": "exjson <arg>",
"aliases": ["exjson"],
"minArgs": 1,
"maxArgs": 1,
"requiresFile": false,
"fileExtension": "",
"run": "print arg[0]"
}
- Usa
validateArgs(args, this)
no início da funçãorun
- Guarda resultados temporários em
lastCmdDump
(caso queiras usar emvar
) - Usa
println
com moderação (apenas para mensagens úteis) - Dá nomes claros e curtos aos aliases
Com estas ferramentas, podes estender o CLILib para suportar qualquer funcionalidade que precises — desde comandos de sistema até integrações com APIs externas.