Refactor: optimize package installation and platform detection

Dieser Commit ist enthalten in:
tom
2026-09-08 12:10:41 +02:00
Ursprung 4d299b1330
Commit 6a2eddc9d8
+27 -10
Datei anzeigen
@@ -1,6 +1,12 @@
#!/bin/bash
set -e # Bricht bei Fehlern sofort ab
# spell:ignore tlmgr texhash texliveonfly beamer biblatex ieee booktabs bigdelim ccicons circuitikz
# spell:ignore Ghostscript biber cleveref concmath csquotes currfile enumitem everypage extdash
# spell:ignore filehook fmtcount fontawesome fontaxes fontmfizz fontspec fontsrecommended ghostscript
# spell:ignore gitea imakeidx infraonly isbn koma latexmk ltablex luatexbase marginnote mathtools
# spell:ignore microtype ncctools newpx newtx newunicodechar nextpage parskip pdfcol pdflscape pdfpages
# spell:ignore pgfplots pict setspace sidecap siunitx stix subfigure tcolorbox tikzfill titlesec
# spell:ignore trimspaces unicode upquote vmargin wrapfig xcharter xltabular xpatch xstring
TLMGR=$(which tlmgr)
TEXHASH=$(which texhash)
@@ -17,6 +23,7 @@ if $TLMGR info texliveonfly | grep -q "installed: Yes"; then
fi
# 3. ALLE Pakete gebündelt in EINEM Rutsch installieren (only scheme-minimal installed)
# Hinweis: scheme-basic beinhaltet bereits scheme-infraonly sowie scheme-minimal
echo "Installiere alle benötigten LaTeX-Pakete parallel/gebündelt..."
$TLMGR install \
background \
@@ -61,10 +68,12 @@ $TLMGR install \
mathtools \
microtype \
minted \
multirow \
ncctools \
newpx \
newtx \
newunicodechar \
nextpage \
ocr-b \
parskip \
pdfcol \
@@ -72,11 +81,10 @@ $TLMGR install \
pdfpages \
pgf \
pgfplots \
physics \
pict2e \
ragged2e \
scheme-basic \
scheme-infraonly \
scheme-minimal \
setspace \
sidecap \
siunitx \
@@ -120,12 +128,12 @@ $TEXHASH
echo "Überprüfe Linux-Systemkomponenten..."
# Liste der zu installierenden Apt-Pakete
APT_PACKAGES=""
SYSTEM_PACKAGES=""
INSTALLED_PACKAGES=""
if ! command -v biber >/dev/null 2>&1; then
echo " -> biber fehlt und wird vorgemerkt."
APT_PACKAGES="$APT_PACKAGES biber"
SYSTEM_PACKAGES="$SYSTEM_PACKAGES biber"
else
echo " -> biber ist bereits installiert ($(biber --version | head -n 1))."
INSTALLED_PACKAGES="$INSTALLED_PACKAGES biber"
@@ -133,16 +141,25 @@ fi
if ! command -v gs >/dev/null 2>&1; then
echo " -> ghostscript (gs) fehlt und wird vorgemerkt."
APT_PACKAGES="$APT_PACKAGES ghostscript"
SYSTEM_PACKAGES="$SYSTEM_PACKAGES ghostscript"
else
echo " -> ghostscript (gs) ist bereits installiert ($(gs --version | head -n 1))."
INSTALLED_PACKAGES="$INSTALLED_PACKAGES ghostscript"
fi
# Falls Pakete fehlen, gebündelt mit einmaligem apt-get update installieren
if [ -n "$APT_PACKAGES" ]; then
echo "Installiere fehlende Systemkomponenten:$APT_PACKAGES..."
sudo apt-get update && sudo apt-get install -y $APT_PACKAGES
# Paket-Installation basierend auf dem verfügbaren Paketmanager
if [ -n "$SYSTEM_PACKAGES" ]; then
if command -v apt-get >/dev/null 2>&1; then
echo "Debian/Ubuntu-System erkannt. Installiere:$SYSTEM_PACKAGES..."
sudo apt-get update && sudo apt-get install -y $SYSTEM_PACKAGES
elif command -v pacman >/dev/null 2>&1; then
echo "Arch Linux erkannt. Installiere:$SYSTEM_PACKAGES..."
# Arch nutzt andere Paketnamen für ghostscript (ghostscript) und biber (biber)
sudo pacman -Sy --noconfirm $SYSTEM_PACKAGES
else
echo "⚠️ Unbekanntes System (kein apt oder pacman gefunden)."
echo "Bitte installiere die folgenden Pakete manuell: $SYSTEM_PACKAGES"
fi
else
# Formatierung: Entfernt führende Leerzeichen und ersetzt verbleibende durch Kommata
CLEAN_LIST=$(echo $INSTALLED_PACKAGES | sed 's/ /, /g')