Desenvolvimento Local
Se você for alterar o código ou contribuir para o MB CLI.
Pré-requisitos
- Go 1.26.2+ (ou a versão em
go.mod) make
Instalação das dependências
make deps
Build e instalação do CLI
make build # binário em bin/mb
make install # instala em $GOPATH/bin (modo de desenvolvimento)
make uninstall # desinstala o CLI do modo de desenvolvimento
Executar localmente
Para rodar o CLI sem instalar (a partir do código-fonte):
make run-local # go run . (ajuda: make run-local -- --help)
make run-local plugins sync # argumentos podem ser passados direto
make run plugins sync # build + ./bin/mb
Plugins de exemplo
Para usar os plugins de exemplo do repositório:
make install-plugins-examples # regista cada plugin com mb plugins add
make run plugins sync # ou mb plugins sync
make uninstall-plugins-examples # remove os plugins de exemplos
Testes
make test
Para visualizar todos os comandos disponíveis no Makefile, execute apenas make no terminal.
Arquitetura do Código
O projeto segue Clean Architecture com injeção de dependência via go.uber.org/fx.
internal/
├── bootstrap/ # Composição raiz — monta a FX App
├── cli/ # Camada de apresentação (Cobra apenas)
├── usecase/ # Casos de uso — lógica de negócio pura
├── domain/ # Modelos de domínio
├── infra/ # Adapters concretos (SQLite, Git, FS, etc.)
├── ports/ # Interfaces (contratos entre camadas)
├── module/ # Módulos Fx — wire de dependência
├── fakes/ # Test doubles para testes unitários
└── shared/ # Utilitários transversais (config, UI, version)
Fluxo de dependência (aponta para o centro):
cli → usecase → domain
↘ ↗
infra → ports
Para detalhes, veja a Referência de Arquitetura.
Próximo passo: Criar um plugin para montar seu primeiro plugin e rodá-lo com o MB.