Fix: Passt ersetzen der sources.list an.

This commit is contained in:
DragonSlayer_14 2025-03-27 10:13:14 +01:00
parent 07d9282587
commit ad8298995f

View File

@ -22,9 +22,12 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
echo " Aktualisiere $SOURCE_LIST..." echo " Aktualisiere $SOURCE_LIST..."
# Neue Datei erzeugen # Temporäre Datei erstellen
TEMP_FILE=$(mktemp) TEMP_FILE=$(mktemp)
# Fehlende Komponenten, die hinzugefügt werden sollen
REQUIRED_COMPONENTS=("main" "non-free" "non-free-firmware" "contrib")
while IFS= read -r line; do while IFS= read -r line; do
# Falls die Zeile auskommentiert oder leer ist, unverändert übernehmen # Falls die Zeile auskommentiert oder leer ist, unverändert übernehmen
if [[ "$line" =~ ^# || -z "$line" ]]; then if [[ "$line" =~ ^# || -z "$line" ]]; then
@ -32,19 +35,22 @@ if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
continue continue
fi fi
# Den eigentlichen APT-Eintrag und die aktuellen Komponenten extrahieren # Den APT-Eintrag und die Komponenten extrahieren
APT_ENTRY=$(echo "$line" | awk '{for (i=1; i<=NF; i++) if ($i ~ /^[a-zA-Z0-9.-]+:\/\//) {print substr($0, 1, index($0,$i) + length($i) - 1); exit}}') APT_ENTRY=$(echo "$line" | awk '{for (i=1; i<=NF; i++) if ($i ~ /^[a-zA-Z0-9.-]+:\/\//) {print substr($0, 1, index($0,$i) + length($i) - 1); exit}}')
COMPONENTS=$(echo "$line" | awk '{$1=$2=$3=""; print $0}' | xargs) CURRENT_COMPONENTS=$(echo "$line" | awk '{$1=$2=$3=""; print $0}' | xargs)
# Set für aktuelle Komponenten erstellen
COMPONENTS_SET=($CURRENT_COMPONENTS)
# Fehlende Komponenten hinzufügen # Fehlende Komponenten hinzufügen
for component in main non-free non-free-firmware contrib; do for component in "${REQUIRED_COMPONENTS[@]}"; do
if ! grep -qE "(^| )$component( |$)" <<< "$COMPONENTS"; then if ! [[ " ${COMPONENTS_SET[*]} " =~ " $component " ]]; then
COMPONENTS="$COMPONENTS $component" COMPONENTS_SET+=("$component")
fi fi
done done
# Neue Zeile zusammenbauen # Neue Zeile mit ursprünglichem APT-Teil + aktualisierten Komponenten schreiben
echo "$APT_ENTRY $COMPONENTS" >> "$TEMP_FILE" echo "$APT_ENTRY ${COMPONENTS_SET[*]}" >>"$TEMP_FILE"
done <"$SOURCE_LIST" done <"$SOURCE_LIST"