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

Início Rápido

Vamos executar seu primeiro comando Invowk™ em menos de 2 minutos. Sério, pegue um café antes se quiser - você terá tempo de sobra.

Crie Seu Primeiro Invowkfile

Navegue até qualquer diretório de projeto e inicialize um invowkfile:

cd my-project
invowk init

Isso cria um invowkfile.cue com um comando hello que funciona nos três runtimes (native, virtual e container). Vamos dar uma olhada:

// Invowkfile - Command definitions for invowk
// See https://github.com/invowk/invowk for documentation

cmds: [
{
name: "hello"
description: "Print a greeting"
implementations: [
{
script: "echo "Hello, $INVOWK_ARG_NAME!""
runtimes: [{name: "native"}]
platforms: [{name: "linux"}, {name: "macos"}]
},
{
script: "Write-Output "Hello, $($env:INVOWK_ARG_NAME)!""
runtimes: [{name: "native"}]
platforms: [{name: "windows"}]
},
{
script: "echo "Hello, $INVOWK_ARG_NAME!""
runtimes: [{name: "virtual"}]
platforms: [{name: "linux"}, {name: "macos"}, {name: "windows"}]
},
{
script: "echo "Hello from container, $INVOWK_ARG_NAME!""
runtimes: [{name: "container", image: "debian:stable-slim"}]
platforms: [{name: "linux"}]
},
]
args: [
{name: "name", description: "Who to greet", default_value: "World"},
]
},
]

O template padrão inclui um único comando hello com quatro implementações: native (Unix e Windows), virtual (multiplataforma) e container. Cada implementação declara quais plataformas ela suporta.

Listar Comandos Disponíveis

Veja quais comandos estão disponíveis:

invowk cmd

Você verá algo como:

Available Commands
(* = default runtime)

From invowkfile:
hello - Print a greeting [native*, virtual, container] (linux, macos, windows)

A listagem mostra o nome do comando, descrição, runtimes permitidos (padrão marcado com *) e plataformas suportadas.

Executar um Comando

Agora vamos executar um:

invowk cmd hello

Saída:

Hello, World!

É isso! Você acabou de executar seu primeiro comando Invowk.

Passar um Argumento

O comando hello aceita um argumento opcional name (padrão "World"). Tente passar seu nome:

# Pass an argument to the hello command
invowk cmd hello Alice

# Use a different runtime
invowk cmd hello --ivk-runtime virtual

Saída:

Hello, Alice!

Argumentos são expostos como variáveis de ambiente INVOWK_ARG_<NOME>, tornando-os acessíveis de qualquer runtime.

Experimente o Runtime Virtual

Um dos superpoderes do Invowk é o runtime virtual - um interpretador de shell integrado que funciona da mesma forma em todas as plataformas:

// The virtual runtime uses the built-in mvdan/sh interpreter
// It works identically on Linux, macOS, and Windows
{
script: "echo "Hello, $INVOWK_ARG_NAME!""
runtimes: [{name: "virtual"}]
platforms: [{name: "linux"}, {name: "macos"}, {name: "windows"}]
}

O runtime virtual usa o interpretador mvdan/sh, proporcionando comportamento consistente de shell POSIX em todas as plataformas - sem necessidade de implementações separadas para Unix e Windows.

Próximos Passos

Você acabou de arranhar a superfície! Vá para Seu Primeiro Invowkfile para aprender como criar comandos mais poderosos com:

  • Múltiplas opções de runtime (native, virtual, container)
  • Dependências que são validadas antes da execução
  • Flags e argumentos de comando
  • Variáveis de ambiente
  • E muito mais!