cafe-gemini
Version:
Instalador e wrapper para o Gemini, configurado com o contexto do ecossistema 'Repo Café.
49 lines (42 loc) • 2.1 kB
JavaScript
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
const HELP_TEXT = `
☕ Uso: cafe-gemini-update
Hora de passar um café fresquinho para a ferramenta! Este comando verifica
se há uma nova versão do 'cafe-gemini' no NPM e a instala.
Se o seu "blend" já estiver atualizado, ele força a sincronização dos manuais
do Repo Café, garantindo que sua base de conhecimento esteja sempre com o
aroma das últimas novidades.
`;
async function checkForUpdates() {
if (process.argv.includes('--help')) {
console.log(HELP_TEXT);
return;
}
try {
// Encontra o caminho do próprio pacote para ler a versão atual
const packageJsonPath = path.join(__dirname, 'package.json');
const currentVersion = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')).version;
console.log('-> Verificando a versão mais recente no NPM...');
const latestVersion = execSync('npm view cafe-gemini version').toString().trim();
if (currentVersion !== latestVersion) {
console.log(`-> Atualizando Cafe-Gemini: v${currentVersion} -> v${latestVersion}`);
execSync('npm install -g @google/gemini-cli@latest', { stdio: 'inherit' });
execSync('npm install -g cafe-gemini@latest', { stdio: 'inherit' });
console.log('\n✅ cafe-gemini atualizado com sucesso!');
} else {
console.log('-> Você já está com a versão mais recente do Cafe-Gemini.');
// Força a reinstalação para garantir que o postinstall seja executado
console.log('-> Sincronizando com Repo-Cafe');
execSync('node postinstall.js', { stdio: 'inherit' });
console.log('\n✅ Repo-Cafe sincronizados com sucesso!');
}
} catch (error) {
console.error('\nERRO: Falha ao verificar ou instalar atualizações. Tente executar o comando manualmente:');
console.error('npm install -g cafe-gemini@latest');
process.exit(1);
}
}
checkForUpdates();