Pular para o conteúdo principal
Versão: 0.3.0

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

ComandoDescrição
invowk module addAdiciona uma dependência de módulo (resolve, faz cache e atualiza lock file e invowkmod.cue)
invowk module removeRemove uma dependência de módulo (atualiza lock file e invowkmod.cue)
invowk module depsLista dependências resolvidas
invowk module syncResolve dependências de invowkmod.cue
invowk module updateAtualiza dependências para as versões mais recentes compatíveis
invowk module vendorFaz 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

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

invowk module add realiza três ações automaticamente:

  1. Resolve e faz cache do módulo
  2. Atualiza o lock file
  3. Autoedita invowkmod.cue para adicionar a entrada em requires (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

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

invowk module remove realiza duas ações automaticamente:

  1. Remove o módulo do lock file
  2. Autoedita invowkmod.cue para remover a entrada correspondente em requires

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

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

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á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 invowkmod.cue encontrado (para sync)
1Falha na resolução de versão
1Falha ao clonar/buscar Git