103 lines
3.3 KiB
JavaScript
103 lines
3.3 KiB
JavaScript
#!/usr/bin/env node
|
||
|
||
import { readFileSync, writeFileSync } from 'fs';
|
||
import { join } from 'path';
|
||
import readline from 'readline';
|
||
|
||
const rl = readline.createInterface({
|
||
input: process.stdin,
|
||
output: process.stdout
|
||
});
|
||
|
||
const question = (query) => new Promise(resolve => rl.question(query, resolve));
|
||
|
||
async function setupSupabase() {
|
||
console.log(`
|
||
╔═══════════════════════════════════════════════════════════════╗
|
||
║ ║
|
||
║ 🔗 CONFIGURAR CONEXÃO COM SUPABASE "RDO" ║
|
||
║ ║
|
||
╚═══════════════════════════════════════════════════════════════╝
|
||
`);
|
||
|
||
console.log('📋 Você vai precisar das credenciais do seu projeto Supabase "RDO"');
|
||
console.log(' Acesse: https://supabase.com/dashboard');
|
||
console.log(' Selecione o projeto "RDO"');
|
||
console.log(' Vá em: Settings → API\n');
|
||
|
||
// Obter credenciais
|
||
const supabaseUrl = await question('🔗 Project URL (https://...supabase.co): ');
|
||
const anonKey = await question('🔑 Anon Public Key: ');
|
||
|
||
// Validar
|
||
if (!supabaseUrl || !anonKey) {
|
||
console.error('\n❌ Erro: Credenciais não podem estar vazias!');
|
||
rl.close();
|
||
process.exit(1);
|
||
}
|
||
|
||
if (!supabaseUrl.includes('supabase.co')) {
|
||
console.error('\n❌ Erro: URL do Supabase inválida!');
|
||
rl.close();
|
||
process.exit(1);
|
||
}
|
||
|
||
if (!anonKey.startsWith('eyJ')) {
|
||
console.error('\n❌ Erro: Anon Key parece inválida (deve começar com "eyJ")!');
|
||
rl.close();
|
||
process.exit(1);
|
||
}
|
||
|
||
// Atualizar .env
|
||
console.log('\n⏳ Atualizando arquivo .env...');
|
||
|
||
const envPath = join(process.cwd(), '.env');
|
||
const envContent = `# Supabase Configuration
|
||
VITE_SUPABASE_URL=${supabaseUrl}
|
||
VITE_SUPABASE_ANON_KEY=${anonKey}
|
||
|
||
# Service Role Key (Backend Only - Never use in frontend)
|
||
# SUPABASE_SERVICE_ROLE_KEY=
|
||
`;
|
||
|
||
try {
|
||
writeFileSync(envPath, envContent);
|
||
console.log('✅ Arquivo .env atualizado com sucesso!\n');
|
||
} catch (error) {
|
||
console.error('❌ Erro ao atualizar .env:', error.message);
|
||
rl.close();
|
||
process.exit(1);
|
||
}
|
||
|
||
// Extrair project-ref
|
||
const projectRef = supabaseUrl.match(/https:\/\/([^.]+)\.supabase\.co/)?.[1];
|
||
|
||
console.log('📊 Resumo da configuração:');
|
||
console.log(` Project URL: ${supabaseUrl}`);
|
||
console.log(` Project Ref: ${projectRef}`);
|
||
console.log(` Anon Key: ${anonKey.substring(0, 20)}...`);
|
||
|
||
console.log('\n✅ Configuração concluída!\n');
|
||
|
||
console.log('📝 Próximos passos:\n');
|
||
console.log('1️⃣ Linkar projeto Supabase CLI:');
|
||
console.log(` supabase link --project-ref ${projectRef}\n`);
|
||
|
||
console.log('2️⃣ Verificar conexão:');
|
||
console.log(' node check-supabase-status.js\n');
|
||
|
||
console.log('3️⃣ Aplicar migrations:');
|
||
console.log(' supabase db push\n');
|
||
|
||
console.log('4️⃣ Iniciar desenvolvimento:');
|
||
console.log(' npm run dev\n');
|
||
|
||
rl.close();
|
||
}
|
||
|
||
setupSupabase().catch(error => {
|
||
console.error('❌ Erro:', error.message);
|
||
rl.close();
|
||
process.exit(1);
|
||
});
|