Last active
August 18, 2026 01:37
-
-
Save Victorsitou/eefee4577999cb84685173022d7c2cd1 to your computer and use it in GitHub Desktop.
IIC2233 config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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