Skip to content
אצלי
Go back

Frameworks e ferramentas para criar CLI em shell/bash

Frameworks e ferramentas para criar CLI em shell/bash

Bashly: Framework CLI para Shell Script

Bashly Demo

Bashly é um gerador de aplicações de linha de comando que transforma configurações YAML em scripts bash estruturados e funcionais. Diferente de parsers tradicionais que processam argumentos em tempo de execução, o Bashly compila definições declarativas em código bash otimizado, eliminando dependências externas no binário final. A ferramenta é escrita em Ruby mas o output é bash puro, garantindo portabilidade e performance nativa em qualquer sistema Unix-like.

A configuração utiliza YAML para definir comandos, subcomandos, flags, argumentos posicionais e validações. Cada elemento declarado no bashly.yml é convertido em funções bash com parsing automático, mensagens de help formatadas e completions para shells modernos. O framework separa lógica de interface: enquanto o Bashly gera toda a camada de CLI (parsing, validação, help), o desenvolvedor implementa apenas a lógica de negócio em arquivos de função isolados (src/ por padrão).

Tecnicamente, o Bashly gera código bash seguindo boas práticas: uso de set -euo pipefail, funções modulares, tratamento de edge cases em parsing POSIX e GNU-style, validação de tipos primitivos (string, integer, file, directory) e arrays de argumentos variáveis. Suporta flags booleanas, flags com valores, argumentos obrigatórios/opcionais, defaults, choices restritos e variáveis de ambiente como fallback. A engine de templates permite customização via Mustache, possibilitando adaptar o output gerado para padrões específicos de projeto.

Para projetos que exigem CLIs com múltiplos subcomandos, autocompleção profissional e documentação consistente, o Bashly elimina boilerplate repetitivo e reduz bugs de parsing manual.

A separação entre definição (YAML) e implementação (bash functions) facilita manutenção, testes unitários e versionamento da interface CLI independente da lógica interna.

O comando bashly add oferece scaffolding automático para testes, validations customizadas, colors, config files e outros recursos comuns em CLIs enterprise-grade.

https://bashly.dev/

https://bashly.dev/usage/writing-your-scripts/

Exemplos: https://bashly.dev/examples/

Requisitos: Ruby 3.2+ e Bash 4.2+

Instalação:

gem install bashly

Outras ferramentas para CLI em Bash/Shell

Geradores de CLI completos

Frameworks minimalistas

Libs de parsing puro

Recomendação por caso

Projetos complexos: bashly, argc
Scripts POSIX portáveis: getoptions
Integração com existente: shFlags, docopts
Controle total: pattern case + funções próprias

Ferramentas como argc e getoptions equilibram simplicidade e funcionalidade sem adicionar peso ao projeto.


Share this post on:

Previous Post
Livro - Programando em Vlang: Simplicidade e Performance
Next Post
DAW: Ardour, Mixbus e LiveTrax