Skip to content

Instantly share code, notes, and snippets.

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

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

Select an option

Save Victorsitou/38a86261dfeae268a6cf6720dcfb9426 to your computer and use it in GitHub Desktop.
IIC2233 setup
#!/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