Home - RafaPear/CLILib GitHub Wiki

CLILib é uma biblioteca desenvolvida em Kotlin que permite a criação de interfaces de linha de comandos (CLI) de forma modular, extensível e interativa. Concebida para facilitar o desenvolvimento de ferramentas baseadas em comandos, a biblioteca oferece:

  • Comandos integrados prontos a usar (ex: cd, ls, print, help, exit, etc.)
  • Suporte para scripting e execução de múltiplos comandos numa só linha
  • Sistema de variáveis com registo e manipulação direta
  • Registo dinâmico e execução de comandos personalizados
  • Validação de argumentos, parsing de expressões e suporte a ficheiros

A biblioteca foi criada com o objetivo de facilitar a prototipagem rápida de CLIs funcionais, ao mesmo tempo que oferece uma base sólida e extensível para projetos mais complexos.

✨ Funcionalidades principais

  • ✅ CLI com prompt interativo e interpretação de comandos
  • 🧠 Sistema de parsing de expressões aritméticas (ex: expr a + b * (2 - c))
  • 📂 Comandos com suporte a diretórios, ficheiros e scripts
  • 🧩 Registo dinâmico de comandos (CmdRegister)
  • 🔧 Sistema de variáveis com leitura/escrita global (VarRegister)
  • 📜 Suporte para execução de scripts .ppc
  • 🧪 Testável com runSingleCmd, runFromFile ou runtimeCLI

📎 Exemplo de script

var a 10 | var b 20 | expr b - a | var c | print $c

🚀 Arranque rápido

fun main() {
    val app = App()
    app.registerDefaultCommands()
    app.runtimeCLI()
}