cafe-gemini
Version:
Instalador e wrapper para o Gemini, configurado com o contexto do ecossistema 'Repo Café.
64 lines (49 loc) • 2.53 kB
JavaScript
const { spawn } = require('child_process');
const HELP_TEXT = `
☕ Bem-vindo ao Café Gemini!
Você está na cafeteria de código do Repo Café. Pegue uma xícara e vamos programar!
Uso:
cafe-gemini [opções-do-gemini] [prompt]
Nosso cardápio de comandos especiais:
- cafe-new [blend] <nome-do-projeto>: Serve um "Café Quentinho" (cria um projeto Godot a partir dos templates Platformer, TopDown, ou ambos).
- cafe-rename: Dá uma "mexida" nos nomes de arquivos e pastas, deixando tudo padronizado e com aroma de código limpo.
- cafe-gemini-update: Passa um café fresquinho para a ferramenta, atualizando o 'cafe-gemini' para a versão mais recente.
- repo-update: Quer um "refil" de conhecimento? Atualiza a base de conhecimento (manuais do Repo Café) com as últimas novidades.
Para um mergulho mais fundo em cada comando, use: <comando> --help
Exemplo: cafe-new --help
A seguir, a ajuda original do Gemini (o nosso fornecedor oficial de grãos):
----------------------------------------------------------------
`;
function main() {
const args = process.argv.slice(2);
// A única exceção: se for um pedido de ajuda, mostramos nosso texto primeiro.
const isHelpCommand = args.some(arg => arg.startsWith('--help'));
if (isHelpCommand) {
console.log(HELP_TEXT);
}
// Se não houver argumentos, 'gemini' será chamado para iniciar o modo de chat.
// Se houver argumentos, eles serão passados diretamente.
const geminiProcess = spawn('gemini', args, {
stdio: 'inherit',
shell: true // No Windows, é necessário para encontrar executáveis .cmd globais
});
geminiProcess.on('error', (err) => {
// Não mostramos o erro para comandos de ajuda, pois o Gemini CLI pode sair com código de erro
// em alguns cenários de ajuda que não são erros reais para o usuário.
if (!isHelpCommand) {
console.error('Erro ao tentar executar o comando "gemini".');
console.error('Por favor, verifique se o @google/gemini-cli está instalado e acessível no seu PATH.');
console.error(err);
process.exit(1);
}
});
geminiProcess.on('exit', (code) => {
// O Gemini CLI pode sair com código 1 em alguns casos de --help,
// então só consideramos um erro real se não for um comando de ajuda.
if (code !== 0 && !isHelpCommand) {
process.exit(code);
}
});
}
main();