@rodrigo-work/cli
v1.0.5
Published
A CLI for rodrigo.work
Readme
Rodrigo.work CLI
CLI utilitário para importação seletiva de pacotes de um monorepo Git via sparse-checkout.
Projetado para ambientes modulares e monorepos, este CLI executa operações precisas e eficientes de clonagem parcial, evitando a cópia completa do repositório. Ideal para automações, scaffolding de projetos e pipelines.
🧩 Objetivo
- Reduzir o custo de clone de repositórios grandes
- Importar pacotes isolados (ex:
packages/cli) de forma segmentada - Automatizar o fluxo de scaffolding em ambientes de desenvolvimento ou CI/CD
- Eliminar código boilerplate para integração modular
⚙️ Arquitetura e Fluxo de Execução
🔁 Passo a passo
- Verificação do pacote a ser clonado
- Criação de um diretório temporário
- Execução de
git sparse-checkoutcomblob:none(sem blobs) - Checkout da branch de desenvolvimento (hardcoded:
develop) - Movimentação do pacote para o diretório atual
- Exclusão do diretório temporário
- Feedback visual no terminal
🧠 Internamente:
- Node.js com
fs/promises,child_process, epath - Git CLI:
clone,checkout,sparse-checkout,config - Interface via
@clack/prompts - Projeto escrito em TypeScript, tipado de ponta a ponta
📦 Estrutura Esperada do Repositório Remoto
O repositório de origem deve possuir estrutura modular padrão de monorepo:
📦 Visão Geral
- Seleção interativa de pacotes disponíveis (
packages/*) - Clonagem inteligente com
--filter=blob:nonee sparse-checkout - Operações atômicas: clone, move e limpeza
- Evita o clone completo do repositório
- Interfaces limpas via
@clack/prompts - Estrutura pensada para automação, escalabilidade e CI/CD
✅ Pré-requisitos
- Node.js v16 ou superior
- Git v2.25+
- Acesso ao repositório Git via SSH (
[email protected]:<org>/<repo>.git)
🚀 Instalação e Uso
Interativo (default)
npx @rodrigo.work/cli