Pular para o conteúdo

Referência da CLI

Interface de linha de comando para o runtime do Wippy.

Disponíveis em todos os comandos:

FlagCurtaDescrição
--configArquivo de configuração (padrão: .wippy.yaml)
--verbose-vAtivar logs de depuração
--very-verboseDepuração com stack traces
--console-cLogs coloridos no console
--silent-sDesativar logs no console
--event-streams-eTransmitir logs para o barramento de eventos
--profiler-pAtivar pprof em localhost:6060
--memory-limit-mLimite de memória (ex: 1G, 512M)

Prioridade do limite de memória: flag --memory-limit > variável de ambiente GOMEMLIMIT > padrão de 1GB.

Criar um novo arquivo de lock.

Terminal window
wippy init
wippy init --src-dir ./src --modules-dir .wippy
FlagCurtaPadrãoDescrição
--src-dir-d./srcDiretório de fontes
--modules-dir.wippyDiretório de módulos
--lock-file-lwippy.lockCaminho do arquivo de lock

Iniciar o runtime ou executar um comando.

Terminal window
wippy run # Iniciar o runtime
wippy run list # Listar comandos disponíveis
wippy run test # Executar testes
wippy run snapshot.wapp # Executar a partir de arquivo pack
wippy run acme/http # Executar módulo do hub
wippy run acme/http@1.2.3 # Executar versão específica
wippy run --exec app:worker # Iniciar runtime e executar um único processo
FlagCurtaDescrição
--override-oSobrescrever valores de entrada (namespace:entry:field=value); field pode ser kind para alterar o tipo da entrada
--setSobrescrever um valor de configuração (section.path=value, repetível, tem precedência sobre o arquivo de configuração)
--exec-xExecutar processo e encerrar (namespace:entry)
--hostID do host de terminal para --exec (detectado automaticamente se existir apenas um terminal.host)
--registryURL do registry para módulos do hub

--set escreve qualquer valor de configuração do runtime pela linha de comando, mesclado sobre .wippy.yaml por folha:

Terminal window
wippy run --set cluster.enabled=true \
--set cluster.membership.join_addrs=node-2:7946,node-3:7946 \
--set cluster.raft.bootstrap_expect=3

Os valores são convertidos pelo formato: true/false para bool, inteiros e floats para números, o restante permanece string (durações como 5s são analisadas onde a opção espera uma).

Verificar erros de tipo e avisos no código Lua.

Terminal window
wippy lint
wippy lint --level warning
wippy lint --json
wippy lint --rules

Valida todas as entradas Lua: function.lua, library.lua, process.lua, workflow.lua (incluindo suas variantes .bc).

FlagCurtaPadrãoDescrição
--lock-file-lwippy.lockCaminho do arquivo de lock
--levelwarningSeveridade mínima: error, warning, hint
--nsFiltrar por padrões de namespace (ex: app, lib.*)
--codeFiltrar por códigos de erro (ex: E0001,E0004)
--rulesfalseHabilitar regras de estilo/qualidade do lint
--summaryfalseAgrupar saída por código de erro
--limit0Máximo de diagnósticos exibidos (0 = ilimitado)
--jsonfalseSaída em JSON
--no-colorfalseDesabilitar saída colorida
--cache-resetfalseLimpar cache Lua antes do lint

Adicionar uma dependência de módulo.

Terminal window
wippy add acme/http
wippy add acme/http@1.2.3
wippy add acme/http@latest
FlagCurtaPadrãoDescrição
--lock-file-lwippy.lockCaminho do arquivo de lock
--registryURL do registry

Instalar dependências a partir do arquivo de lock.

Terminal window
wippy install # Instalar todos
wippy install acme/http # Instalar módulo específico
wippy install --refresh acme/http # Re-baixar um módulo específico
FlagCurtaPadrãoDescrição
--lock-file-lwippy.lockCaminho do arquivo de lock
--refreshfalseRe-baixar cada módulo, ignorando o cache
--forcefalseAlias de --refresh
--repairfalseAlias de --refresh
--registryURL do registry

Atualizar dependências e regenerar o arquivo de lock.

Terminal window
wippy update # Atualizar todas
wippy update acme/http # Atualizar módulo específico
wippy update acme/http demo/sql # Atualizar múltiplos
FlagCurtaPadrãoDescrição
--lock-file-lwippy.lockCaminho do arquivo de lock
--src-dir-d./srcDiretório de fontes
--modules-dir.wippyDiretório de módulos
--registryURL do registry

Criar um pack de snapshot (arquivo .wapp).

Terminal window
wippy pack snapshot.wapp
wippy pack release.wapp --description "Release 1.0"
wippy pack app.wapp --embed app:assets --bytecode **
FlagCurtaDescrição
--lock-file-lCaminho do arquivo de lock
--description-dDescrição do pack
--tags-tTags do pack (separadas por vírgula)
--metaMetadados personalizados (chave=valor)
--embedIncorporar entradas fs.directory (padrões)
--listListar entradas fs.directory (simulação)
--exclude-nsExcluir namespaces (padrões)
--excludeExcluir entradas (padrões)
--bytecodeCompilar Lua para bytecode (** para todos)

Publicar módulo no hub.

Terminal window
wippy publish
wippy publish --version 1.0.0
wippy publish --dry-run

Lê a partir do wippy.yaml no diretório atual.

FlagDescrição
--versionVersão a publicar
--dry-runValidar sem publicar
--labelPublicar como label mutável em vez de versão
--release-notesNotas de lançamento
--protectedMarcar versão como protegida
--embedIncorporar entradas fs.directory por id ou nome
--configCaminho para o diretório contendo wippy.yaml (padrão: .)
--registryURL do registry
--createCriar o módulo no registry se ainda não existir
--module-visibilityVisibilidade para módulos recém-criados (--create apenas): public ou private (padrão: private)
--module-typeTipo para módulos recém-criados (--create apenas): library, application, agent ou plugin (padrão: application)
--module-display-nameNome de exibição para módulos recém-criados (--create apenas)

Buscar módulos no hub.

Terminal window
wippy search http
wippy search "sql driver" --limit 20
wippy search auth --json
FlagPadrãoDescrição
--jsonfalseSaída em JSON
--limit20Máximo de resultados
--registryURL do registry

Gerenciar autenticação no registry.

Terminal window
wippy auth login
wippy auth login --token YOUR_TOKEN
FlagDescrição
--tokenToken de API
--registryURL do registry
--localArmazenar credenciais localmente
Terminal window
wippy auth logout
FlagDescrição
--registryURL do registry
--localRemover credenciais locais
Terminal window
wippy auth status
wippy auth status --json
FlagDescrição
--jsonSaída em JSON

Obter o README de um módulo a partir do hub.

Terminal window
wippy readme wippy/terminal
wippy readme wippy/terminal@1.2.3
wippy readme --json wippy/terminal@latest
FlagDescrição
--jsonSaída em JSON
--registryURL do registry (padrão: das credenciais)

Consultar e inspecionar entradas do registry.

Terminal window
wippy registry list
wippy registry list --kind "function.lua.*"
wippy registry list --ns "app.*" --json
wippy registry list --meta "type=api" --meta "enabled=true"
FlagCurtaDescrição
--kind-kFiltrar por tipo (padrão glob)
--ns-nFiltrar por namespace (padrão glob)
--nameFiltrar por nome (padrão glob)
--metaFiltrar por metadados (repetível)
--jsonSaída em JSON
--yamlSaída em YAML
--lock-file-lCaminho do arquivo de lock

Operadores de metadados para --meta:

OperadorSignificado
field=valueCorrespondência exata
field~regexCorrespondência por regex
field*substrContém substring
field^prefixComeça com prefixo
field$suffixTermina com sufixo
Terminal window
wippy registry show app:http:handler
wippy registry show app:config --yaml
FlagCurtaDescrição
--field-fMostrar campo específico
--jsonSaída em JSON
--yamlSaída em YAML
--rawSaída bruta
--lock-file-lCaminho do arquivo de lock

Imprimir informações de versão.

Terminal window
wippy version
wippy version --short

Qualquer entrada process.lua ou process.wasm pode ser registrada como um comando nomeado adicionando metadados de command:

entries:
- name: test_runner
kind: process.lua
meta:
command:
name: test
short: Run application tests
source: file://runner.lua
method: main
modules:
- io
- registry
- funcs

Execute com:

Terminal window
wippy run test

Liste todos os comandos disponíveis:

Terminal window
wippy run list
CampoObrigatórioDescrição
nameSimNome do comando usado com wippy run <name>
shortNãoDescrição curta exibida em wippy run list
mainNãoMarca esta entrada como comando padrão (selecionado automaticamente por packs e módulos do hub que entregam um único comando)

Qualquer tipo de entrada de processo funciona (process.lua, process.wasm). O nome do comando deve ser único entre todas as entradas carregadas. Argumentos após o nome do comando são passados para o processo como payloads de string.

Terminal window
# Inicializar projeto
wippy init
wippy add wippy/http wippy/sql
wippy install
# Verificar erros
wippy lint
# Executar com saída de depuração
wippy run -c -v
# Sobrescrever configuração para desenvolvimento local
wippy run -o app:db:host=localhost -o app:db:port=5432
Terminal window
# Criar pack de release com bytecode
wippy pack release.wapp --bytecode ** --exclude-ns test.**
# Executar a partir do pack com limite de memória
wippy run release.wapp -m 2G
Terminal window
# Executar um único processo
wippy run --exec app:worker
# Com profiler ativado
wippy run -p -v
# Depois: go tool pprof http://localhost:6060/debug/pprof/heap
Terminal window
# Adicionar nova dependência
wippy add acme/http@latest
# Forçar re-download
wippy install --force
# Atualizar módulo específico
wippy update acme/http
Terminal window
# Login no hub
wippy auth login
# Validar módulo
wippy publish --dry-run
# Publicar
wippy publish --version 1.0.0 --release-notes "Initial release"

Crie .wippy.yaml para configurações persistentes:

logger:
encoding: console
logmanager:
min_level: -1 # depuração
profiler:
enabled: true
address: localhost:6060
override:
app:gateway:addr: ":9090"
app:db:host: "localhost"