68 lines
1.8 KiB
Bash
Executable File
68 lines
1.8 KiB
Bash
Executable File
#!/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
|
|
|
|
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."
|