Comandos CLI de Dependências de Módulos
O Invowk fornece um conjunto de comandos invowk module para gerenciar dependências declaradas em invkmod.cue.
Visão Geral dos Comandos
| Comando | Descrição |
|---|---|
invowk module add | Resolve uma dependência e imprime uma entrada de requires |
invowk module remove | Remove uma dependência do lock file |
invowk module deps | Lista dependências resolvidas |
invowk module sync | Resolve dependências de invkmod.cue |
invowk module update | Atualiza dependências para as versões mais recentes compatíveis |
invowk module vendor | Faz vendor das dependências em invk_modules/ (parcial) |
invowk module add
Resolve uma dependência e imprime a entrada de requires para adicionar em invkmod.cue.
Uso
invowk module add <git-url> <version> [flags]
Argumentos
| Argumento | Descrição |
|---|---|
git-url | URL do repositório Git (HTTPS ou SSH) |
version | Restrição de versão semântica |
Flags
| Flag | Descrição |
|---|---|
--alias <name> | Namespace personalizado para a dependência |
--path <path> | Subdiretório dentro do repositório |
Exemplos
# Add a dependency with caret version
invowk module add https://github.com/user/mod.invkmod.git ^1.0.0
# Add with SSH URL
invowk module add git@github.com:user/mod.invkmod.git ~2.0.0
# Add with custom alias
invowk module add https://github.com/user/common.invkmod.git ^1.0.0 --alias tools
# Add from monorepo subdirectory
invowk module add https://github.com/user/monorepo.invkmod.git ^1.0.0 --path modules/cli
Saída
Add Module Dependency
• Resolving https://github.com/user/mod.invkmod.git@^1.0.0...
✓ Module added successfully
• Git URL: https://github.com/user/mod.invkmod.git
• Version: ^1.0.0 → 1.2.3
• Namespace: mod@1.2.3
• Cache: /home/user/.invowk/modules/github.com/user/mod.invkmod/1.2.3
• To use this module, add to your invkmod.cue:
requires: [
{
git_url: "https://github.com/user/mod.invkmod.git"
version: "^1.0.0"
},
]
invowk module add não edita invkmod.cue automaticamente. Copie a entrada de requires impressa para os metadados do módulo e execute invowk module sync.
invowk module remove
Remove uma dependência do lock file.
Uso
invowk module remove <git-url>
Argumentos
| Argumento | Descrição |
|---|---|
git-url | URL do repositório Git a remover |
Exemplos
invowk module remove https://github.com/user/mod.invkmod.git
Saída
Remove Module Dependency
• Removing https://github.com/user/mod.invkmod.git...
✓ Module removed from lock file
• Don't forget to remove the requires entry from your invkmod.cue
Esse comando remove a dependência apenas do lock file. Você precisa remover manualmente a entrada de requires de invkmod.cue. Arquivos de cache não são deletados.
invowk module deps
Lista todas as dependências resolvidas no lock file.
Uso
invowk module deps
Saída
Module Dependencies
• Found 2 module dependency(ies)
✓ build-tools@2.3.1
Git URL: https://github.com/company/build-tools.invkmod.git
Version: ^2.0.0 → 2.3.1
Commit: abc123def456
Cache: /home/user/.invowk/modules/github.com/company/build-tools.invkmod/2.3.1
✓ deploy-utils@1.5.2
Git URL: https://github.com/company/deploy-tools.invkmod.git
Version: ~1.5.0 → 1.5.2
Commit: 789xyz012abc
Cache: /home/user/.invowk/modules/github.com/company/deploy-tools.invkmod/1.5.2
Sem Dependências
Module Dependencies
• No module dependencies found
• To add modules, use: invowk module add <git-url> <version>
invowk module sync
Sincroniza todas as dependências declaradas em invkmod.cue. Lê o campo requires, resolve restrições de versão, baixa módulos e atualiza o lock file.
Uso
invowk module sync
Saída
Sync Module Dependencies
• Found 2 requirement(s) in invkmod.cue
✓ build-tools@2.3.1 → 2.3.1
✓ deploy-utils@1.5.2 → 1.5.2
✓ Lock file updated: invkmod.lock.cue
Sem Requirements
Sync Module Dependencies
• No requires field found in invkmod.cue
invowk module update
Atualiza dependências para as versões mais recentes compatíveis com as restrições declaradas.
Uso
invowk module update [git-url]
Argumentos
| Argumento | Descrição |
|---|---|
git-url | (Opcional) Dependência específica para atualizar |
Exemplos
# Update all modules
invowk module update
# Update a specific module
invowk module update https://github.com/user/mod.invkmod.git
Saída
Update Module Dependencies
• Updating all modules...
✓ build-tools@2.3.1 → 2.4.0
✓ deploy-utils@1.5.2 → 1.5.3
✓ Lock file updated: invkmod.lock.cue
Sem Atualizações
Update Module Dependencies
• Updating all modules...
• No modules to update
invowk module vendor
Faz vendor das dependências no diretório invk_modules/ para uso offline e distribuição.
Uso
invowk module vendor [module-path]
Saída
Vendor Module Dependencies
• Found 2 requirement(s) in invkmod.cue
• Vendor directory: /home/user/project/invk_modules
! Vendoring is not yet fully implemented
• The following dependencies would be vendored:
• https://github.com/example/common.invkmod.git@^1.0.0
• https://github.com/example/deploy.invkmod.git@~1.5.0
Vendor ainda é um preview. O comando informa o que seria incluído e cria o diretório, mas ainda não faz download das dependências.
Workflows Comuns
Configuração Inicial
# 1. Resolve dependencies
invowk module add https://github.com/company/build-tools.invkmod.git ^2.0.0 --alias build
invowk module add https://github.com/company/deploy-tools.invkmod.git ~1.5.0 --alias deploy
# 2. Add requires to invkmod.cue manually or verify
cat invkmod.cue
# 3. Sync to generate lock file
invowk module sync
# 4. Commit the lock file
git add invkmod.lock.cue
git commit -m "Add module dependencies"
Clone Novo
# On a fresh clone, sync downloads all modules
git clone https://github.com/yourorg/project.git
cd project
invowk module sync
Atualizações Regulares
# Update all modules periodically
invowk module update
# Review changes
git diff invkmod.lock.cue
# Commit if tests pass
git add invkmod.lock.cue
git commit -m "Update module dependencies"
Troubleshooting
# List current dependencies to verify state
invowk module deps
# Re-sync if something seems wrong
invowk module sync
# Check commands are available
invowk cmd
Variáveis de Ambiente
| Variável | Descrição |
|---|---|
INVOWK_MODULES_PATH | Sobrescreve o diretório de cache de módulos |
GITHUB_TOKEN | Autenticação GitHub |
GITLAB_TOKEN | Autenticação GitLab |
GIT_TOKEN | Autenticação Git genérica |
Códigos de Saída
| Código | Significado |
|---|---|
| 0 | Sucesso |
| 1 | Erro geral |
| 1 | Módulo não encontrado (para remove) |
| 1 | Nenhum invkmod.cue encontrado (para sync) |
| 1 | Falha na resolução de versão |
| 1 | Falha ao clonar/buscar Git |