Comandos CLI de Dependências de Módulos
O Invowk fornece um conjunto de comandos invowk module para gerenciar dependências declaradas em invowkmod.cue.
Visão Geral dos Comandos
| Comando | Descrição |
|---|---|
invowk module add | Adiciona uma dependência de módulo (resolve, faz cache e atualiza lock file e invowkmod.cue) |
invowk module remove | Remove uma dependência de módulo (atualiza lock file e invowkmod.cue) |
invowk module deps | Lista dependências resolvidas |
invowk module sync | Resolve dependências de invowkmod.cue |
invowk module update | Atualiza dependências para as versões mais recentes compatíveis |
invowk module vendor | Faz vendor das dependências em invowk_modules/ |
invowk module add
Resolve uma dependência, faz cache, atualiza o lock file e autoedita invowkmod.cue para adicionar a entrada em requires.
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.invowkmod.git ^1.0.0
# Add with SSH URL
invowk module add git@github.com:user/mod.invowkmod.git ~2.0.0
# Add with custom alias
invowk module add https://github.com/user/common.invowkmod.git ^1.0.0 --alias tools
# Add from monorepo subdirectory
invowk module add https://github.com/user/monorepo.invowkmod.git ^1.0.0 --path modules/cli
Saída
Add Module Dependency
ℹ Resolving https://github.com/user/mod.invowkmod.git@^1.0.0...
✓ Module resolved and lock file updated
ℹ Git URL: https://github.com/user/mod.invowkmod.git
ℹ Version: ^1.0.0 → 1.2.3
ℹ Namespace: mod@1.2.3
ℹ Cache: /home/user/.invowk/modules/github.com/user/mod.invowkmod/1.2.3
✓ Updated invowkmod.cue with new requires entry
invowk module add realiza três ações automaticamente:
- Resolve e faz cache do módulo
- Atualiza o lock file
- Autoedita
invowkmod.cuepara adicionar a entrada emrequires(se o arquivo existir)
invowk module remove
Remove uma dependência de módulo do lock file e de invowkmod.cue.
Uso
invowk module remove <identifier>
Argumentos
| Argumento | Descrição |
|---|---|
identifier | Identificador do módulo: URL Git, alias, nome do módulo ou chave completa (modulename@version) |
Exemplos
invowk module remove https://github.com/user/mod.invowkmod.git
Saída
Remove Module Dependency
ℹ Removing https://github.com/user/mod.invowkmod.git...
✓ Removed mod@1.2.3
✓ Lock file and invowkmod.cue updated
invowk module remove realiza duas ações automaticamente:
- Remove o módulo do lock file
- Autoedita
invowkmod.cuepara remover a entrada correspondente emrequires
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.invowkmod.git
Version: ^2.0.0 → 2.3.1
Commit: abc123def456
Cache: /home/user/.invowk/modules/github.com/company/build-tools.invowkmod/2.3.1
✓ deploy-utils@1.5.2
Git URL: https://github.com/company/deploy-tools.invowkmod.git
Version: ~1.5.0 → 1.5.2
Commit: 789xyz012abc
Cache: /home/user/.invowk/modules/github.com/company/deploy-tools.invowkmod/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 invowkmod.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 invowkmod.cue
✓ build-tools@2.3.1 → 2.3.1
✓ deploy-utils@1.5.2 → 1.5.2
✓ Lock file updated: invowkmod.lock.cue
Sem Requirements
Sync Module Dependencies
• No requires field found in invowkmod.cue
invowk module update
Atualiza dependências para as versões mais recentes compatíveis com as restrições declaradas.
Uso
invowk module update [identifier]
Argumentos
| Argumento | Descrição |
|---|---|
identifier | (Opcional) Dependência específica para atualizar: URL Git, alias, nome do módulo ou chave completa (modulename@version) |
Exemplos
# Update all modules
invowk module update
# Update a specific module
invowk module update https://github.com/user/mod.invowkmod.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: invowkmod.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 invowk_modules/ para uso offline e distribuição.
Uso
invowk module vendor [module-path]
Saída
Vendor Module Dependencies
• Found 2 requirement(s) in invowkmod.cue
• Loading from lock file
• Vendor directory: /home/user/project/invowk_modules
✓ common@1.2.3
✓ deploy@1.5.4
✓ Vendored 2 module(s) successfully
invowk module vendor resolve as dependências e as copia para invowk_modules/. Se invowkmod.lock.cue existir, o vendor usa por padrão as versões travadas. Use --update para forçar nova resolução e --prune para remover módulos vendorizados obsoletos.
Workflows Comuns
Configuração Inicial
# 1. Resolve dependencies
invowk module add https://github.com/company/build-tools.invowkmod.git ^2.0.0 --alias build
invowk module add https://github.com/company/deploy-tools.invowkmod.git ~1.5.0 --alias deploy
# 2. Add requires to invowkmod.cue manually or verify
cat invowkmod.cue
# 3. Sync to generate lock file
invowk module sync
# 4. Commit the lock file
git add invowkmod.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 invowkmod.lock.cue
# Commit if tests pass
git add invowkmod.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 invowkmod.cue encontrado (para sync) |
| 1 | Falha na resolução de versão |
| 1 | Falha ao clonar/buscar Git |