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

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 Invkfile

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

cd my-project
invowk init

Isso cria um invkfile.cue com um comando de exemplo. Vamos dar uma olhada:

cmds: [
{
name: "hello"
description: "Say hello!"
implementations: [
{
script: "echo 'Hello from Invowk!'"
runtimes: [{name: "native"}]
platforms: [{name: "linux"}, {name: "macos"}, {name: "windows"}]
}
]
}
]

Não se preocupe em entender tudo ainda - vamos cobrir isso em breve!

Listar Comandos Disponíveis

Veja quais comandos estão disponíveis:

invowk cmd

Você verá algo como:

Available Commands
(* = default runtime)

From current directory:
hello - Say hello! [native*] (linux, macos, windows)

Comandos do diretório atual aparecem sem prefixo. Comandos de módulos incluem um prefixo quando presentes.

Executar um Comando

Agora vamos executá-lo:

invowk cmd hello

Saída:

Hello from Invowk!

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

Vamos Tornar Isso Mais Interessante

Edite seu invkfile.cue para adicionar um comando mais útil:

cmds: [
{
name: "hello"
description: "Say hello!"
implementations: [
{
script: "echo 'Hello from Invowk!'"
runtimes: [{name: "native"}]
platforms: [{name: "linux"}, {name: "macos"}, {name: "windows"}]
}
]
},
{
name: "info"
description: "Show system information"
implementations: [
{
script: """
echo "=== System Info ==="
echo "User: $USER"
echo "Directory: $(pwd)"
echo "Date: $(date)"
"""
runtimes: [{name: "native"}]
platforms: [{name: "linux"}, {name: "macos"}]
}
]
}
]

Agora execute:

invowk cmd info

Você verá as informações do seu sistema exibidas de forma organizada.

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:

{
name: "cross-platform"
description: "Works the same everywhere!"
implementations: [
{
script: "echo 'This runs identically on Linux, Mac, and Windows!'"
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.

Próximos Passos

Você acabou de arranhar a superfície! Vá para Seu Primeiro Invkfile 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!