Pular para o conteúdo principal
Versão: 0.1.0-alpha.1

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

ComandoDescrição
invowk module addResolve uma dependência e imprime uma entrada de requires
invowk module removeRemove uma dependência do lock file
invowk module depsLista dependências resolvidas
invowk module syncResolve dependências de invkmod.cue
invowk module updateAtualiza dependências para as versões mais recentes compatíveis
invowk module vendorFaz 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

ArgumentoDescrição
git-urlURL do repositório Git (HTTPS ou SSH)
versionRestrição de versão semântica

Flags

FlagDescriçã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"
},
]
observação

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

ArgumentoDescrição
git-urlURL 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
observação

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

ArgumentoDescriçã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
observação

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ávelDescrição
INVOWK_MODULES_PATHSobrescreve o diretório de cache de módulos
GITHUB_TOKENAutenticação GitHub
GITLAB_TOKENAutenticação GitLab
GIT_TOKENAutenticação Git genérica

Códigos de Saída

CódigoSignificado
0Sucesso
1Erro geral
1Módulo não encontrado (para remove)
1Nenhum invkmod.cue encontrado (para sync)
1Falha na resolução de versão
1Falha ao clonar/buscar Git