#!/bin/bash set -e -u ###################################################################################### # # # Proyecto 'pterodactyl-installer' # # # # Copyright (C) 2026, Fabian Mendez # # # # Este programa es software libre: puedes redistribuirlo y/o modificarlo # # bajo los términos de la Licencia Pública General GNU publicada por # # la Free Software Foundation, ya sea la versión 3 de la Licencia, o # # (a tu elección) cualquier versión posterior. # # # # Este programa se distribuye con la esperanza de que sea útil, # # pero SIN NINGUNA GARANTÍA; incluso sin la garantía implícita de # # COMERCIALIZACIÓN o APTITUD PARA UN PROPÓSITO PARTICULAR. Consulta la # # Licencia Pública General GNU para más detalles. # # # # https://github.com/FabianMendez3/script-pterodactyl-instaler # # # ###################################################################################### export GITHUB_SOURCE="" export SCRIPT_RELEASE="v3.0.5" export DEFAULT_BASE_URL="${DEFAULT_BASE_URL:-${DEFAULT_PROD_BASE_URL:-https://ptero.fabianm.dev}}" export GITHUB_BASE_URL="${GITHUB_BASE_URL:-$DEFAULT_BASE_URL}" # ─── Bootstrap ───────────────────────────────── PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Si estamos en un pipe (/dev/fd) o no existe la carpeta lib, cargar remotamente if [[ "$PROJECT_ROOT" == "/dev/fd"* ]] || [[ ! -f "$PROJECT_ROOT/lib/lib.sh" ]]; then export GITHUB_URL="${GITHUB_BASE_URL:-$DEFAULT_BASE_URL}" # Asegurar curl antes de intentar cargar lib.sh if ! command -v curl &>/dev/null; then apt-get update && apt-get install -y curl || yum install -y curl || apk add curl || true fi # Descargar y guardar librería base remota para que los sub-scripts la encuentren en /tmp/lib.sh TMP_LIB="/tmp/lib.sh" if ! curl -sSL -A curl -o "$TMP_LIB" "$GITHUB_URL/lib/lib.sh?t=$(date +%s)"; then echo "* ERROR: No se pudo descargar la librería base desde $GITHUB_URL/lib/lib.sh" exit 1 fi # shellcheck source=/tmp/lib.sh source "$TMP_LIB" else # Cargar librería base local # shellcheck source=lib/lib.sh source "$PROJECT_ROOT/lib/lib.sh" fi parse_installer_args "$@" bootstrap_require_dependencies # ─────────────────────────────────────────────── cleanup_on_exit() { local exit_code=$? trap - EXIT INT TERM ERR set +e if declare -F cleanup_temp_artifacts >/dev/null 2>&1; then cleanup_temp_artifacts fi bootstrap_cleanup_tempfiles exit "$exit_code" } trap cleanup_on_exit EXIT INT TERM ERR if [[ -n "${TEMPLATE_PATH:-}" ]]; then load_template "$TEMPLATE_PATH" elif [[ "${AUTO_MODE:-}" == "true" ]]; then enable_auto_mode fi welcome "" installer_check_update "$@" pre_flight_checks installer_menu