Last active
August 18, 2026 02:11
-
-
Save Victorsitou/38a86261dfeae268a6cf6720dcfb9426 to your computer and use it in GitHub Desktop.
IIC2233 setup
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 | |
| SYLLABUS_DIR="$WORK_DIR/Syllabus" | |
| CONTENIDOS_DIR="$WORK_DIR/contenidos" | |
| # Archivo de configuración | |
| INIT_LUA_PATH="$WORK_DIR/init.lua" | |
| # ============================================================ | |
| # REPOSITORIOS Y ARCHIVOS | |
| # ============================================================ | |
| SYLLABUS_URL="https://github.com/IIC2233/Syllabus.git" | |
| CONTENIDOS_URL="https://github.com/IIC2233/contenidos.git" | |
| INIT_LUA_URL="https://raw.githubusercontent.com/arsenelupin777/config/main/init.lua" | |
| 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 " • Contenidos" | |
| echo " • Repositorio personal" | |
| echo " • Archivo init.lua" | |
| 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:]') | |
| # Nombre del repositorio personal | |
| PERSONAL_REPO_NAME="${GITHUB_USER}-iic2233-2026-2" | |
| # URL del repositorio personal | |
| PERSONAL_REPO_URL="https://github.com/${GITHUB_ORG}/${PERSONAL_REPO_NAME}.git" | |
| # Directorio local del repositorio personal | |
| PERSONAL_DIR="$WORK_DIR/$PERSONAL_REPO_NAME" | |
| echo | |
| echo "Repositorio personal:" | |
| echo | |
| echo " $PERSONAL_REPO_URL" | |
| echo | |
| echo "Directorio local:" | |
| echo | |
| echo " $PERSONAL_DIR" | |
| 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/4] 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/4] 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..." | |
| echo | |
| git clone "$SYLLABUS_URL" "$SYLLABUS_DIR" | |
| success "Syllabus clonado en:" | |
| echo " $SYLLABUS_DIR" | |
| fi | |
| # ============================================================ | |
| # CONTENIDOS | |
| # ============================================================ | |
| echo | |
| echo "→ Contenidos" | |
| echo | |
| if [ -d "$CONTENIDOS_DIR/.git" ]; then | |
| warning "Contenidos ya existe en:" | |
| echo " $CONTENIDOS_DIR" | |
| echo | |
| read -rp "¿Quieres hacer git pull? [Y/n]: " pull | |
| if [[ ! "$pull" =~ ^[Nn]$ ]]; then | |
| git -C "$CONTENIDOS_DIR" pull | |
| success "Contenidos actualizado." | |
| else | |
| warning "Contenidos no fue modificado." | |
| fi | |
| elif [ -d "$CONTENIDOS_DIR" ]; then | |
| error "$CONTENIDOS_DIR existe pero no es un repositorio Git." | |
| exit 1 | |
| else | |
| echo "Clonando Contenidos..." | |
| echo | |
| git clone "$CONTENIDOS_URL" "$CONTENIDOS_DIR" | |
| success "Contenidos clonado en:" | |
| echo " $CONTENIDOS_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..." | |
| echo | |
| 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 | |
| # ============================================================ | |
| # DESCARGAR INIT.LUA | |
| # ============================================================ | |
| clear | |
| echo "╔════════════════════════════════════════════╗" | |
| echo "║ [3/4] INIT.LUA ║" | |
| echo "╚════════════════════════════════════════════╝" | |
| echo | |
| # Verificar que curl esté instalado | |
| if ! command -v curl &> /dev/null; then | |
| warning "curl no está instalado." | |
| echo | |
| echo "Instalando curl..." | |
| sudo apt update | |
| sudo apt install -y curl | |
| success "curl instalado." | |
| fi | |
| echo | |
| echo "Descargando init.lua..." | |
| echo | |
| curl -fL "$INIT_LUA_URL" -o "$INIT_LUA_PATH" | |
| if [ -s "$INIT_LUA_PATH" ]; then | |
| success "init.lua descargado correctamente." | |
| echo | |
| echo " $INIT_LUA_PATH" | |
| else | |
| error "No fue posible descargar init.lua." | |
| exit 1 | |
| fi | |
| pause | |
| # ============================================================ | |
| # VERIFICACIÓN FINAL | |
| # ============================================================ | |
| clear | |
| echo "╔════════════════════════════════════════════╗" | |
| echo "║ [4/4] VERIFICACIÓN ║" | |
| echo "╚════════════════════════════════════════════╝" | |
| echo | |
| # ============================================================ | |
| # GIT | |
| # ============================================================ | |
| echo "────────────────────────────────────────────" | |
| echo "Git" | |
| echo "────────────────────────────────────────────" | |
| echo | |
| echo " Nombre : $(git config --global user.name)" | |
| echo " Email : $(git config --global user.email)" | |
| # ============================================================ | |
| # GITHUB | |
| # ============================================================ | |
| 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 | |
| # ============================================================ | |
| # REPOSITORIOS | |
| # ============================================================ | |
| echo | |
| echo "────────────────────────────────────────────" | |
| echo "Repositorios" | |
| echo "────────────────────────────────────────────" | |
| echo | |
| if [ -d "$SYLLABUS_DIR/.git" ]; then | |
| success "Syllabus → $SYLLABUS_DIR" | |
| else | |
| error "Syllabus NO encontrado" | |
| fi | |
| if [ -d "$CONTENIDOS_DIR/.git" ]; then | |
| success "Contenidos → $CONTENIDOS_DIR" | |
| else | |
| error "Contenidos NO encontrado" | |
| fi | |
| if [ -d "$PERSONAL_DIR/.git" ]; then | |
| success "Personal → $PERSONAL_DIR" | |
| else | |
| error "Repositorio personal NO encontrado" | |
| fi | |
| # ============================================================ | |
| # ARCHIVOS | |
| # ============================================================ | |
| echo | |
| echo "────────────────────────────────────────────" | |
| echo "Archivos" | |
| echo "────────────────────────────────────────────" | |
| echo | |
| if [ -s "$INIT_LUA_PATH" ]; then | |
| success "init.lua → $INIT_LUA_PATH" | |
| else | |
| error "init.lua NO encontrado" | |
| fi | |
| # ============================================================ | |
| # FIN | |
| # ============================================================ | |
| 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