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!