| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #!/usr/bin/env bash
- # ============================================================================
- # Trixy Installer — Bootstrap-Script
- #
- # Entpackt den Installer, erstellt ein temporaeres venv und startet die TUI.
- # ============================================================================
- set -euo pipefail
- # --- Eingebettete Werte ---
- MODE="client"
- VERSION="1.0.0"
- SOURCE_TAR="trixy-client-1.0.0.tar.gz"
- INSTALLER_TAR="trixy-installer-client-1.0.0.tar.gz"
- # --- Farben ---
- RED='\033[0;31m'
- GREEN='\033[0;32m'
- YELLOW='\033[1;33m'
- NC='\033[0m'
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- TEMP_DIR=""
- cleanup() {
- if [[ -n "${TEMP_DIR}" && -d "${TEMP_DIR}" ]]; then
- echo -e "${YELLOW}Raeume auf...${NC}"
- rm -rf "${TEMP_DIR}"
- fi
- }
- trap cleanup EXIT
- echo ""
- echo -e "${GREEN}========================================"
- echo " Trixy Installer v${VERSION} [${MODE}]"
- echo -e "========================================${NC}"
- echo ""
- # 1. Pruefe ob tar-Dateien vorhanden
- if [[ ! -f "${SCRIPT_DIR}/${SOURCE_TAR}" ]]; then
- echo -e "${RED}FEHLER: ${SOURCE_TAR} nicht gefunden${NC}"
- exit 1
- fi
- if [[ ! -f "${SCRIPT_DIR}/${INSTALLER_TAR}" ]]; then
- echo -e "${RED}FEHLER: ${INSTALLER_TAR} nicht gefunden${NC}"
- exit 1
- fi
- # 2. Python >= 3.10 sicherstellen
- echo "Pruefe Python-Version..."
- PYTHON_BIN=""
- for py in python3.12 python3.11 python3.10 python3; do
- if command -v "${py}" >/dev/null 2>&1; then
- py_minor=$("${py}" -c "import sys; print(sys.version_info.minor)")
- if [[ "${py_minor}" -ge 10 ]]; then
- PYTHON_BIN="${py}"
- break
- fi
- fi
- done
- if [[ -z "${PYTHON_BIN}" ]]; then
- echo -e "${YELLOW}Python >= 3.10 nicht gefunden. Versuche Installation...${NC}"
- if command -v apt-get >/dev/null 2>&1; then
- sudo apt-get update -qq
- sudo apt-get install -y -qq python3 python3-venv python3-pip
- PYTHON_BIN="python3"
- else
- echo -e "${RED}FEHLER: Python >= 3.10 wird benoetigt${NC}"
- exit 1
- fi
- fi
- echo " Verwende: ${PYTHON_BIN} ($(${PYTHON_BIN} --version 2>&1))"
- # 3. Installer-tar in temp-Verzeichnis entpacken
- TEMP_DIR="$(mktemp -d)"
- echo "Entpacke Installer nach ${TEMP_DIR}..."
- tar xzf "${SCRIPT_DIR}/${INSTALLER_TAR}" -C "${TEMP_DIR}"
- # 4. Installer-venv erstellen
- INST_VENV="${TEMP_DIR}/installer-venv"
- echo "Erstelle Installer-venv..."
- "${PYTHON_BIN}" -m venv "${INST_VENV}"
- "${INST_VENV}/bin/pip" install --upgrade pip -q 2>/dev/null
- "${INST_VENV}/bin/pip" install -r "${TEMP_DIR}/trixy_installer/requirements.txt" -q
- # 5. TUI starten
- echo ""
- echo -e "${GREEN}Starte Installer-TUI...${NC}"
- echo ""
- PYTHONPATH="${TEMP_DIR}" "${INST_VENV}/bin/python" -m trixy_installer \
- --mode "${MODE}" \
- --version "${VERSION}" \
- --source-archive "${SCRIPT_DIR}/${SOURCE_TAR}"
- echo ""
- echo -e "${GREEN}Installer beendet.${NC}"
|