Pular para conteúdo

Comandos do quest

O quest é um wrapper fino sobre java -jar target/quest.jar. Ele compila o projeto quando algo mudou e lê o .env da raiz. Para uma introdução guiada com só os comandos essenciais, veja Como o quest funciona na trilha do workshop.

Comando O que faz
./quest start <id> Prepara a lição (semeia se preciso, roda o setup dos passos) e mostra os passos com o próximo a fazer
./quest verify <id> Confere cada passo no seu Redis, marca os concluídos e aponta o que falta (verify all para tudo)
./quest solve <id> [passo] Faz o próximo passo por você (roda o lab, executa o comando ou copia a solução do exercício e roda)
./quest skip <id> [passo] Pula explicitamente um passo; ele permite seguir, mas não conta como verificado
./quest next Vai para a primeira lição com passo pendente
./quest run <id> jedis ou lettuce ou both Roda o lab pronto da lição
./quest exercise 101-01 jedis ou lettuce Roda o SEU código do exercício de String, único exercício com arquivo para completar atualmente
./quest list Lições por curso com os passos concluídos
./quest seed Carrega o mundo Ember Realm no seu prefixo (idempotente)
./quest reset --yes Apaga todas as chaves do seu prefixo
./quest doctor Relatório de conexão

Ciclo de vida de cada passo, no estilo dos labs guiados: start prepara, você age, verify confere, solve faz por você quando travar, skip pula. O progresso dos passos fica no hash {prefixo}:steps:<id> do seu Redis.

verify distingue verificado, pendente/indisponível e falhou. Recurso ausente, TLS sem configuração ou failover não observado não viram conclusão automática. A comparação opcional com o segundo client não bloqueia o avanço. O botão do site é um registro pessoal de estudo no navegador, separado dessas evidências.

Códigos de saída: 0 para verificações concluídas, 1 para falha e 3 para verificação pendente ou recurso indisponível.

No Windows, troque ./quest por quest.cmd.

Variáveis de ambiente (ou .env)

Variável Padrão Uso
REDIS_URL redis://localhost:6379 URL do Redis: redis://usuario:senha@host:porta ou rediss:// com TLS
QUEST_PREFIX usuário da URL, ou quest Prefixo de todas as chaves. Em um banco compartilhado, um por pessoa
REDIS_TLS_URL vazio Lição 301-03. URL obrigatoriamente rediss:// de um banco com TLS
REDIS_TLS_CA_PEM vazio CA própria em PEM, quando não está no truststore da JVM
OLLAMA_URL http://localhost:11434 Lição 201-03. Ollama local para vetorizar perguntas novas
QUEST_WAITERS 5 Lição 102-04. Quantos jogadores esperam bloqueados na fila
QUEST_EAST_URL e QUEST_WEST_URL redis://localhost:6391 e 6392 Lição 301-05. Os dois "datacenters" do failover
QUEST_FAILOVER_SECONDS 20 Lição 301-05. Duração do heartbeat, de 5 a 300 segundos
NO_COLOR vazio Desliga as cores da saída

Rodando pela IDE

Execute a classe com.emberrealm.quest.core.Main, passando por exemplo run 101-02 jedis nos argumentos do programa. Use a raiz do projeto como diretório de trabalho para ler o .env. As implementações de Lab ficam em src/main/java/com/emberrealm/quest/lessons/l<id>/; elas não possuem main próprio.