Skip to main content

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.