Skip to content

Instantly share code, notes, and snippets.

@Victorsitou
Last active August 18, 2026 01:37
Show Gist options
  • Select an option

  • Save Victorsitou/eefee4577999cb84685173022d7c2cd1 to your computer and use it in GitHub Desktop.

Select an option

Save Victorsitou/eefee4577999cb84685173022d7c2cd1 to your computer and use it in GitHub Desktop.
IIC2233 config
#!/bin/bash
set -e
# ============================================================
# CONFIGURACIÓN IIC2233
# ============================================================
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m'
# ============================================================
# RUTAS
# ============================================================
HOME_DIR="/home/lubuntu"
WORK_DIR="$HOME_DIR/Trabajo"
# Repositorios (todos los clones quedan dentro de $WORK_DIR)
SYLLABUS_DIR="$WORK_DIR/Syllabus"
PERSONAL_DIR="$WORK_DIR/iic2233-2026-2"
# ============================================================
# REPOSITORIOS
# ============================================================
SYLLABUS_URL="https://github.com/IIC2233/Syllabus.git"
GITHUB_ORG="IIC2233"
# ============================================================
# FUNCIONES
# ============================================================
success() {
echo -e "${GREEN}$1${NC}"
}
warning() {
echo -e "${YELLOW}! $1${NC}"
}
error() {
echo -e "${RED}$1${NC}"
}
pause() {
echo
read -rp "Presiona Enter para continuar..."
}
# ============================================================
# INICIO
# ============================================================
clear
echo
echo "╔════════════════════════════════════════════╗"
echo "║ CONFIGURACIÓN IIC2233 ║"
echo "╚════════════════════════════════════════════╝"
echo
echo "Este script configurará:"
echo
echo " • Git"
echo " • GitHub CLI"
echo " • Autenticación con GitHub"
echo " • Syllabus"
echo " • Repositorio personal"
echo
read -rp "¿Quieres continuar? [Y/n]: " answer
if [[ "$answer" =~ ^[Nn]$ ]]; then
echo "Cancelado."
exit 0
fi
# ============================================================
# PREPARAR DIRECTORIOS
# ============================================================
mkdir -p "$WORK_DIR"
success "Directorios preparados."
# ============================================================
# GITHUB CLI Y AUTENTICACIÓN
# ============================================================
clear
echo "╔════════════════════════════════════════════╗"
echo "║ AUTENTICACIÓN DE GITHUB ║"
echo "╚════════════════════════════════════════════╝"
echo
# Verificar que GitHub CLI esté instalado
if ! command -v gh &> /dev/null; then
warning "GitHub CLI (gh) no está instalado."
echo
read -rp "¿Quieres instalar GitHub CLI? [Y/n]: " install_gh
if [[ ! "$install_gh" =~ ^[Nn]$ ]]; then
sudo apt update
sudo apt install -y gh
success "GitHub CLI instalado."
else
error "GitHub CLI es necesario para continuar."
exit 1
fi
else
success "GitHub CLI ya está instalado."
fi
echo
# Verificar autenticación con GitHub
echo "Verificando sesión de GitHub..."
if gh auth status &> /dev/null; then
success "Ya existe una sesión iniciada en GitHub."
else
warning "No hay una sesión activa en GitHub."
echo
echo "Se iniciará el proceso de autenticación."
echo
gh auth login
echo
# Verificar que el login haya sido exitoso
if gh auth status &> /dev/null; then
success "Autenticación con GitHub completada."
else
error "No fue posible iniciar sesión en GitHub."
exit 1
fi
fi
echo
# ============================================================
# USUARIO DE GITHUB
# ============================================================
clear
echo "╔════════════════════════════════════════════╗"
echo "║ CUENTA DE GITHUB ║"
echo "╚════════════════════════════════════════════╝"
echo
read -rp "Usuario de GitHub: " GITHUB_USER
if [ -z "$GITHUB_USER" ]; then
error "Debes ingresar tu usuario de GitHub."
exit 1
fi
# GitHub no distingue mayúsculas/minúsculas
GITHUB_USER=$(echo "$GITHUB_USER" | tr '[:upper:]' '[:lower:]')
PERSONAL_REPO_NAME="${GITHUB_USER}-iic2233-2026-2"
PERSONAL_REPO_URL="https://github.com/${GITHUB_ORG}/${PERSONAL_REPO_NAME}.git"
echo
echo "Repositorio personal:"
echo
echo " $PERSONAL_REPO_URL"
echo
read -rp "¿Es correcto? [Y/n]: " answer
if [[ "$answer" =~ ^[Nn]$ ]]; then
error "Configuración cancelada."
exit 1
fi
success "Usuario configurado: $GITHUB_USER"
# ============================================================
# GIT
# ============================================================
clear
echo "╔════════════════════════════════════════════╗"
echo "║ [1/3] GIT ║"
echo "╚════════════════════════════════════════════╝"
echo
if ! command -v git &> /dev/null; then
warning "Git no está instalado."
read -rp "¿Quieres instalar Git? [Y/n]: " install_git
if [[ ! "$install_git" =~ ^[Nn]$ ]]; then
sudo apt update
sudo apt install -y git
success "Git instalado."
else
error "Git es necesario para continuar."
exit 1
fi
else
success "Git ya está instalado."
fi
echo
CURRENT_NAME=$(git config --global user.name || true)
CURRENT_EMAIL=$(git config --global user.email || true)
read -rp "Nombre de Git [${CURRENT_NAME:-}]: " GIT_NAME
if [ -z "$GIT_NAME" ]; then
GIT_NAME="$CURRENT_NAME"
fi
read -rp "Email de Git [${CURRENT_EMAIL:-}]: " GIT_EMAIL
if [ -z "$GIT_EMAIL" ]; then
GIT_EMAIL="$CURRENT_EMAIL"
fi
git config --global user.name "$GIT_NAME"
git config --global user.email "$GIT_EMAIL"
success "Git configurado."
pause
# ============================================================
# REPOSITORIOS
# ============================================================
clear
echo "╔════════════════════════════════════════════╗"
echo "║ [2/3] REPOSITORIOS ║"
echo "╚════════════════════════════════════════════╝"
echo
# ============================================================
# SYLLABUS
# ============================================================
echo "→ Syllabus"
echo
if [ -d "$SYLLABUS_DIR/.git" ]; then
warning "Syllabus ya existe en:"
echo " $SYLLABUS_DIR"
echo
read -rp "¿Quieres hacer git pull? [Y/n]: " pull
if [[ ! "$pull" =~ ^[Nn]$ ]]; then
git -C "$SYLLABUS_DIR" pull
success "Syllabus actualizado."
else
warning "Syllabus no fue modificado."
fi
elif [ -d "$SYLLABUS_DIR" ]; then
error "$SYLLABUS_DIR existe pero no es un repositorio Git."
exit 1
else
echo "Clonando Syllabus..."
git clone "$SYLLABUS_URL" "$SYLLABUS_DIR"
success "Syllabus clonado en:"
echo " $SYLLABUS_DIR"
fi
# ============================================================
# REPOSITORIO PERSONAL PRIVADO
# ============================================================
echo
echo "→ Repositorio personal"
echo
if [ -d "$PERSONAL_DIR/.git" ]; then
warning "Repositorio personal ya existe en:"
echo " $PERSONAL_DIR"
echo
read -rp "¿Quieres hacer git pull? [Y/n]: " pull
if [[ ! "$pull" =~ ^[Nn]$ ]]; then
echo "Actualizando repositorio..."
git -C "$PERSONAL_DIR" pull
success "Repositorio personal actualizado."
else
warning "Repositorio personal no fue modificado."
fi
elif [ -d "$PERSONAL_DIR" ]; then
error "$PERSONAL_DIR existe pero no es un repositorio Git."
exit 1
else
echo "Clonando repositorio privado..."
echo
echo " $PERSONAL_REPO_URL"
echo
git clone "$PERSONAL_REPO_URL" "$PERSONAL_DIR"
success "Repositorio personal clonado en:"
echo " $PERSONAL_DIR"
fi
pause
# ============================================================
# VERIFICACIÓN FINAL
# ============================================================
clear
echo "╔════════════════════════════════════════════╗"
echo "║ [3/3] VERIFICACIÓN ║"
echo "╚════════════════════════════════════════════╝"
echo
echo "────────────────────────────────────────────"
echo "Git"
echo "────────────────────────────────────────────"
echo
echo " Nombre : $(git config --global user.name)"
echo " Email : $(git config --global user.email)"
echo
echo "────────────────────────────────────────────"
echo "GitHub"
echo "────────────────────────────────────────────"
echo
echo " Usuario : $GITHUB_USER"
echo " Repo : $PERSONAL_REPO_NAME"
if gh auth status &> /dev/null; then
success "Sesión de GitHub activa"
else
error "No hay una sesión activa en GitHub"
fi
echo
echo "────────────────────────────────────────────"
echo "Repositorios"
echo "────────────────────────────────────────────"
echo
if [ -d "$SYLLABUS_DIR/.git" ]; then
success "Syllabus → $SYLLABUS_DIR"
else
error "Syllabus NO encontrado"
fi
if [ -d "$PERSONAL_DIR/.git" ]; then
success "Personal → $PERSONAL_DIR"
else
error "Repositorio personal NO encontrado"
fi
echo
echo "╔════════════════════════════════════════════╗"
echo "║ ¡CONFIGURACIÓN COMPLETADA! 🎉 ║"
echo "╚════════════════════════════════════════════╝"
echo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment