@bethecozmo/modula
v1.0.14
Published
CLI para gerenciar módulos programáticos no sistema Modula
Downloads
11
Maintainers
Readme
Modula CLI
Uma interface de linha de comando (CLI) poderosa para gerenciar módulos programáticos no sistema Modula. Com a modula, você pode registrar, fazer login, listar, visualizar, baixar, enviar e excluir módulos em um servidor centralizado, otimizando o reaproveitamento de código em projetos Angular, NestJS e outras tecnologias.
Funcionalidades
- Autenticação: Registre-se e faça login com um token seguro armazenado localmente.
- Gerenciamento de Módulos:
- Liste todos os módulos registrados.
- Visualize detalhes de um módulo específico.
- Baixe módulos e reconstrua a estrutura de arquivos localmente.
- Envie módulos a partir de diretórios locais.
- Exclua módulos do servidor com confirmação.
- Configuração Flexível: Defina a URL do servidor via variável de ambiente (
MODULA_API_URL). - Interatividade: Prompts intuitivos com suporte a máscaras para senhas.
Pré-requisitos
- Node.js: Versão 18.x ou superior (testado com v22.18.0).
- npm: Incluído com o Node.js.
- Servidor Modula: Um servidor Modula rodando (padrão:
http://10.8.0.2:3031).
Instalação
Instale o Modula CLI globalmente via npm:
npm install -g @bethecozmo/modulaIsso registra o comando modula para uso em qualquer diretório.
Configuração
A CLI se conecta ao servidor Modula. Por padrão, usa http://10.8.0.2:3031. Para configurar uma URL diferente:
Usando variável de ambiente (Linux/Mac):
export MODULA_API_URL=https://api.modula.comPara tornar permanente, adicione ao
~/.bashrcou~/.zshrc:echo 'export MODULA_API_URL=https://api.modula.com' >> ~/.bashrc source ~/.bashrcWindows (CMD):
set MODULA_API_URL=https://api.modula.comPara persistência:
setx MODULA_API_URL https://api.modula.comUsando
.env(opcional):- Instale o
dotenv:npm install dotenv - Crie um arquivo
.envno diretório onde você executa os comandos:MODULA_API_URL=https://api.modula.com - Adicione no início do
modula.js(se você tiver acesso ao código-fonte):require('dotenv').config();
- Instale o
Comandos
modula [comando]| Comando | Descrição |
|--------------------------|---------------------------------------------------------------------------|
| modula register | Registra um novo usuário (nome, nickname, email, senha). |
| modula login | Faz login e armazena o token em ~/.modula/config.json. |
| modula logout | Remove o token armazenado. |
| modula list | Lista todos os módulos registrados no servidor. |
| modula view <id> | Exibe detalhes de um módulo específico pelo ID. |
| modula download <id> | Baixa o conteúdo de um módulo e o reconstrói localmente (padrão: diretório atual). |
| modula upload <localPath> | Envia um diretório local como novo módulo, com nome, descrição e ferramenta. |
| modula delete <id> | Exclui um módulo do servidor (com confirmação). |
Use modula help ou modula [comando] --help para mais detalhes.
Exemplos
Registrar um usuário:
modula register- Digite nome, nickname, email e senha quando solicitado.
Fazer login:
modula login- Insira email e senha. O token será salvo em
~/.modula/config.json.
- Insira email e senha. O token será salvo em
Listar módulos:
modula list- Exibe IDs, nomes, descrições e ferramentas dos módulos.
Visualizar um módulo:
modula view 68ba9832f3b5029aed2ea274Baixar um módulo:
modula download 68ba9832f3b5029aed2ea274- Reconstrói a estrutura do módulo no diretório atual com o nome registrado do módulo.
Enviar um módulo:
modula upload ./src/app/test-module- Captura a estrutura de diretórios em
./src/app/test-modulee solicita nome, descrição e ferramenta (ex.:angular,nestjs).
- Captura a estrutura de diretórios em
Excluir um módulo:
modula delete 68ba9832f3b5029aed2ea274- Confirma antes de excluir.
Estrutura do Módulo
Os módulos enviados ou baixados seguem o formato:
{
"name": "Test Module",
"description": "This is a description for Test Module",
"path": "src/app/test-module",
"tool": "angular",
"nodes": [
{
"type": "file",
"name": "main.txt",
"content": "Hello, world!"
},
{
"type": "directory",
"name": "segredos",
"children": [
{
"type": "file",
"name": "elogios.txt",
"content": "você é muito cheiroso(a)"
}
]
}
]
}Notas (Desconsidere se não fará manutenção)
- Autenticação: Todos os comandos, exceto
registerelogin, requerem um token válido (obtido vialogin). - Servidor: Certifique-se de que o servidor Modula está rodando e acessível na URL configurada.
- Erro na rota DELETE: O comando
deleteusaDELETE /module/:id. Confirme com o backend se a rota está correta. - Token: O login assume que a rota
/auth/loginretorna{ access_token: '...' }. Ajuste o código se o formato for diferente.
Solução de Problemas
- Erro: "command not found: modula":
- Verifique se instalou globalmente com
npm install -g @bethecozmo/modula. - Confirme que o npm global está no PATH:
npm bin -g.
- Verifique se instalou globalmente com
- Erro: "Você precisa logar primeiro":
- Execute
modula loginantes de usar outros comandos.
- Execute
- Erro de conexão com o servidor:
- Verifique se o servidor está rodando e se
MODULA_API_URLestá correto.
- Verifique se o servidor está rodando e se
Publicação no npm (para mantenedores)
- Crie uma conta no npmjs.com.
- No diretório do projeto, faça login:
npm login - Publique o pacote:
npm publish --access public- Nota: O nome
modulanopackage.jsondeve ser único. Se já estiver em uso, escolha outro nome ou use um escopo (ex.:@seu-nome/modula).
- Nota: O nome
Contribuindo
Sinta-se à vontade para abrir issues ou pull requests no repositório oficial (se disponível). Para feedback, entre em contato com a equipe de desenvolvimento.
Licença
MIT License. Veja LICENSE para detalhes.
