Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] setupGit.js

Adaptei de um script em shell que tinha feito
Nunca tinha usado exec e Promise
Inseri o código no cht GPT e pedi para ele comentar cada linha de código com uma explicação
Roda no terminl via node
Colocar na pasta que quer enviar para o github

const readline = require("readline");    // Módulo para perguntar ao usuário no terminal
const { exec } = require("child_process"); // Para rodar comandos git no sistema
const { promisify } = require("util");     // Para transformar exec em Promise

// Transforma exec para usar async/await (mais fácil)
const execAsync = promisify(exec);

// Criamos a interface para ler textos do usuário
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

// Função para perguntar ao usuário (versão Promises)
function perguntar(texto) {
  return new Promise(resolve => {
    rl.question(texto, resposta => resolve(resposta));
  });
}

async function main() {
  try {
    console.log("\n=== CONFIGURAR GIT AUTOMATICAMENTE ===\n");

    // Pergunta o nome do commit inicial
    const CM = await perguntar("Nome do commit inicial: ");

    // Pergunta a URL SSH do repositório
    const URL = await perguntar("URL SSH do repositório (ex: git@github.com:usuario/repo.git): ");

    // Pergunta o caminho da chave SSH
    const KEY = await perguntar("Caminho da chave SSH (ex: ~/.ssh/id_rsa): ");

    console.log("\nExecutando comandos Git...\n");

    // Executa os comandos do shell script
    await execAsync("git init");
    await execAsync("git add .");
    await execAsync(`git commit -m "${CM}"`);
    await execAsync(`git remote add origin ${URL}`);

    console.log("Configurando chave SSH...");
    await execAsync(`ssh-add ${KEY}`);

    console.log("\nEnviando para o GitHub...");
    await execAsync("git push -u origin main");

    console.log("\nRepositório configurado com sucesso!");
  } catch (err) {
    console.error("\nERRO:", err.message);
  } finally {
    rl.close(); // Fecha a entrada do usuário
  }
}

main();
1 resposta
solução!

Oi! Como vai?

Com base no que você explicou, ficou legal ver como organizou o fluxo com async/await para automatizar o setup do Git. A parte de transformar exec em Promise deixou o script mais limpo e fácil de manter.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!