📌 Referência Técnica - RafaPear/CLILib GitHub Wiki

Esta página reúne as principais interfaces, objetos e funções que compõem o núcleo técnico do CLILib — útil para quem pretende estender ou integrar a biblioteca com outros sistemas.


🔧 Interface Command

Todos os comandos devem implementar esta interface:

interface Command {
    val description: String
    val longDescription: String
        get() = description
    val usage: String
    val aliases: List<String>
    val minArgs: Int
        get() = 0
    val maxArgs: Int
        get() = 0
    val requiresFile: Boolean
        get() = false
    val fileExtension: String
        get() = ""
    val commands: List<String>
        get() = emptyList()
    fun run(args: List<String>): Boolean
}

🧩 Registo de comandos (CmdRegister)

CmdRegister.register(cmd)
CmdRegister.registerAll(listOf(cmd1, cmd2))
CmdRegister.unregister(cmd)
CmdRegister.all()
CmdRegister.find(alias)

🧠 Sistema de variáveis (VarRegister)

VarRegister.register("nome", valor)
VarRegister.modify("nome", novoValor)
VarRegister.get("nome")
VarRegister.all()
VarRegister.isRegistered("nome")
VarRegister.unregister("nome")

🧪 Execução de comandos (cmdParser)

cmdParser("print Olá mundo")
cmdParser("var x 5 | print $x")

⚙️ Utilitários principais

  • clearAndRedrawPrompt() — limpa e redesenha o prompt
  • clearPrompt() — limpa o terminal
  • drawPrompt() — imprime mensagem de boas-vindas
  • replaceVars(), replaceArgs() — substitui variáveis e argumentos
  • validateArgs(args, command) — valida argumentos e ficheiros
  • readJsonFile(path, callback) — lê ficheiros .json
  • ProgressBar(...) — barra de progresso visual para loops longos

🌍 Globais

val root: String     // Diretório atual
val version: String  // Versão da aplicação
val commentCode = "//"
var lastCmdDump: Any? // Último valor devolvido por um comando

Esta referência serve como apoio rápido para desenvolvimento e extensões da biblioteca.

⚠️ **GitHub.com Fallback** ⚠️