mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-08-13 16:32:23 +00:00
Update install_proxmenux.sh
This commit is contained in:
parent
e2988bf292
commit
9e0b6bfdc2
@ -2,106 +2,54 @@
|
|||||||
|
|
||||||
# Configuración
|
# Configuración
|
||||||
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
|
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
|
||||||
|
INSTALL_DIR="/usr/local/bin"
|
||||||
BASE_DIR="/usr/local/share/proxmenux"
|
BASE_DIR="/usr/local/share/proxmenux"
|
||||||
LANG_DIR="$BASE_DIR/lang"
|
LANG_DIR="$BASE_DIR/lang"
|
||||||
CACHE_DIR="$BASE_DIR/cache"
|
|
||||||
LOCAL_VERSION_FILE="$BASE_DIR/version.txt"
|
LOCAL_VERSION_FILE="$BASE_DIR/version.txt"
|
||||||
REMOTE_VERSION_FILE="$BASE_DIR/latest_version.txt"
|
MENU_SCRIPT="menu.sh"
|
||||||
LANGUAGE_FILE="/root/.proxmenux_language"
|
|
||||||
SKIP_UPDATE_CHECK=${SKIP_UPDATE_CHECK:-false}
|
|
||||||
|
|
||||||
# Colores para salida
|
# Verificar que se ejecute como root
|
||||||
YW="\033[33m"; GN="\033[1;92m"; RD="\033[01;31m"; CL="\033[m"
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
msg_info() { echo -ne " ${YW}[INFO] $1...${CL}"; }
|
echo "Este script debe ejecutarse como root." >&2
|
||||||
msg_ok() { echo -e " ${GN}[OK] $1${CL}"; }
|
exit 1
|
||||||
msg_error() { echo -e " ${RD}[ERROR] $1${CL}"; }
|
fi
|
||||||
|
|
||||||
# Crear las carpetas necesarias
|
# Crear las carpetas necesarias
|
||||||
mkdir -p "$LANG_DIR" "$CACHE_DIR"
|
echo "Creando carpetas necesarias..."
|
||||||
|
mkdir -p "$LANG_DIR"
|
||||||
|
|
||||||
# Seleccionar idioma en la primera ejecución
|
# Descargar el script principal (menu.sh)
|
||||||
if [ ! -f "$LANGUAGE_FILE" ]; then
|
echo "Descargando el script principal..."
|
||||||
LANGUAGE=$(whiptail --title "Seleccionar Idioma" --menu "Elige tu idioma / Select your language:" 15 60 2 \
|
wget -qO "$INSTALL_DIR/$MENU_SCRIPT" "$REPO_URL/$MENU_SCRIPT"
|
||||||
"es" "Español" \
|
if [ $? -ne 0 ]; then
|
||||||
"en" "English" 3>&1 1>&2 2>&3)
|
echo "Error al descargar el script principal. Verifica la URL y tu conexión a Internet." >&2
|
||||||
|
exit 1
|
||||||
if [ -z "$LANGUAGE" ]; then
|
|
||||||
echo "No seleccionaste un idioma. Saliendo..." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$LANGUAGE" > "$LANGUAGE_FILE"
|
|
||||||
msg_ok "Idioma seleccionado: $LANGUAGE"
|
|
||||||
else
|
|
||||||
LANGUAGE=$(cat "$LANGUAGE_FILE")
|
|
||||||
msg_info "Idioma cargado: $LANGUAGE"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Descargar el archivo de idioma si no existe
|
# Descargar archivos de idioma
|
||||||
LANG_FILE="$LANG_DIR/$LANGUAGE.lang"
|
echo "Descargando archivos de idioma..."
|
||||||
if [ ! -f "$LANG_FILE" ]; then
|
for LANG in es en; do
|
||||||
msg_info "Descargando archivo de idioma..."
|
wget -qO "$LANG_DIR/$LANG.lang" "$REPO_URL/lang/$LANG.lang"
|
||||||
wget -qO "$LANG_FILE" "$REPO_URL/lang/$LANGUAGE.lang"
|
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
msg_error "Error al cargar el archivo de idioma. Verifica la conexión a Internet o la URL."
|
echo "Error al descargar el archivo de idioma '$LANG.lang'. Verifica la URL y tu conexión a Internet." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
done
|
||||||
msg_ok "Archivo de idioma ya existe localmente."
|
|
||||||
|
# Descargar la versión inicial
|
||||||
|
echo "Descargando archivo de versión inicial..."
|
||||||
|
wget -qO "$LOCAL_VERSION_FILE" "$REPO_URL/version.txt"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Error al descargar el archivo de versión. Verifica la URL y tu conexión a Internet." >&2
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source "$LANG_FILE"
|
# Asignar permisos de ejecución al script principal
|
||||||
|
chmod +x "$INSTALL_DIR/$MENU_SCRIPT"
|
||||||
|
|
||||||
# Verificar si hay una nueva versión del menú
|
# Confirmación
|
||||||
if [ "$SKIP_UPDATE_CHECK" = "false" ]; then
|
echo "ProxMenux ha sido instalado correctamente."
|
||||||
msg_info "Comprobando actualizaciones..."
|
echo "Ejecuta 'menu.sh' como root para iniciar el menú."
|
||||||
if wget -qO "$REMOTE_VERSION_FILE" "$REPO_URL/version.txt"; then
|
|
||||||
REMOTE_VERSION=$(cat "$REMOTE_VERSION_FILE" | tr -d '\r')
|
|
||||||
|
|
||||||
# Comprobar si el archivo local de versión existe
|
# Finalizar
|
||||||
if [ ! -f "$LOCAL_VERSION_FILE" ]; then
|
exit 0
|
||||||
echo "$SCRIPT_VERSION" > "$LOCAL_VERSION_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOCAL_VERSION=$(cat "$LOCAL_VERSION_FILE" | tr -d '\r')
|
|
||||||
|
|
||||||
# Mostrar versiones para depuración
|
|
||||||
msg_info "Versión local: $LOCAL_VERSION"
|
|
||||||
msg_info "Versión remota: $REMOTE_VERSION"
|
|
||||||
|
|
||||||
# Comparar versión local con remota
|
|
||||||
if [ "$REMOTE_VERSION" != "$LOCAL_VERSION" ]; then
|
|
||||||
whiptail --title "$UPDATE_TITLE" --yesno "$UPDATE_PROMPT" 10 60 && {
|
|
||||||
wget -qO /usr/local/bin/menu.sh "$REPO_URL/menu.sh"
|
|
||||||
chmod +x /usr/local/bin/menu.sh
|
|
||||||
echo "$REMOTE_VERSION" > "$LOCAL_VERSION_FILE"
|
|
||||||
whiptail --title "$UPDATE_COMPLETE" --msgbox "$UPDATE_MESSAGE" 10 60
|
|
||||||
SKIP_UPDATE_CHECK=true exec env SKIP_UPDATE_CHECK=true /usr/local/bin/menu.sh
|
|
||||||
}
|
|
||||||
else
|
|
||||||
msg_ok "El menú está actualizado."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
msg_error "No se pudo comprobar la versión. Verifica la conexión a Internet o la URL del archivo."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Dependencias y bucle del menú
|
|
||||||
check_dependencies() {
|
|
||||||
if ! command -v whiptail &> /dev/null; then
|
|
||||||
msg_info "Instalando dependencias necesarias..."
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y whiptail
|
|
||||||
msg_ok "Dependencias instaladas."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
show_menu() {
|
|
||||||
# Aquí iría el menú principal
|
|
||||||
msg_ok "ProxMenux está listo."
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# Verificar dependencias y mostrar menú
|
|
||||||
check_dependencies
|
|
||||||
show_menu
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user