#!/bin/bash # Abbrechen bei Fehlern set -e # --- KONFIGURATION --- GIT_REPO_PATH="./git-repo" TARGETS=("linux-tom" "linux-tom-headers" "linux-tom-docs") # 1. Pakete bauen # -s: Abhängigkeiten, -f: Überschreiben, -c: Aufräumen echo "Starte Build-Prozess..." makepkg -sfc --noconfirm # 2. Version extrahieren VERSION=$(grep '^pkgver=' PKGBUILD | cut -d= -f2) REL=$(grep '^pkgrel=' PKGBUILD | cut -d= -f2) FULL_VER_PATTERN="${VERSION}-${REL}" # 3. Git-Verzeichnis vorbereiten mkdir -p "$GIT_REPO_PATH" echo "Aktualisiere Dateien in $GIT_REPO_PATH..." FILES_TO_INSTALL=() for name in "${TARGETS[@]}"; do found_file=$(ls ${name}-${FULL_VER_PATTERN}-*.pkg.tar.zst 2>/dev/null | head -n 1) if [ -f "$found_file" ]; then DEST_FILE="$GIT_REPO_PATH/${name}.pkg.tar.zst" cp "$found_file" "$DEST_FILE" echo "${VERSION}-${REL}" > "$GIT_REPO_PATH/${name}.version" FILES_TO_INSTALL+=("$DEST_FILE") fi done # 4. Installation der neuen Pakete if [ ${#FILES_TO_INSTALL[@]} -gt 0 ]; then echo "Installiere Pakete lokal..." sudo pacman -U --noconfirm "${FILES_TO_INSTALL[@]}" else echo "Fehler: Keine Pakete zum Installieren gefunden!" exit 1 fi # 5. Git-Upload (Commit & Push) cd "$GIT_REPO_PATH" if [ -d "../.git" ]; then # Vor dem Push die neuesten Änderungen vom Server holen git pull --rebase --autostash git add *.pkg.tar.zst *.version # Prüfen, ob es Änderungen zum Committen gibt if ! git diff-index --quiet HEAD; then echo "Commit und Push der neuen Version $VERSION-$REL..." git commit -m "Kernel Update: $VERSION-$REL" git push echo "Erfolgreich auf den Server hochgeladen." else echo "Keine Änderungen vorhanden, Push nicht notwendig." fi else echo "Warnung: Kein Git-Repository in $GIT_REPO_PATH gefunden." fi echo "Vorgang abgeschlossen."