Update common-functions.sh

This commit is contained in:
MacRimi 2025-08-06 21:47:53 +02:00
parent da9762f60e
commit 6e1cb2e0fe

View File

@ -85,9 +85,13 @@ lvm_repair_check() {
cleanup_duplicate_repos() { cleanup_duplicate_repos() {
msg_info "$(translate "Cleaning up duplicate repositories...")" msg_info "$(translate "Cleaning up duplicate repositories...")"
local sources_file="/etc/apt/sources.list"
local temp_file=$(mktemp)
local cleaned_count=0 local cleaned_count=0
local sources_file="/etc/apt/sources.list"
if [[ -f "$sources_file" ]]; then
local temp_file
temp_file=$(mktemp)
declare -A seen_repos declare -A seen_repos
while IFS= read -r line || [[ -n "$line" ]]; do while IFS= read -r line || [[ -n "$line" ]]; do
@ -96,7 +100,7 @@ cleanup_duplicate_repos() {
continue continue
fi fi
if [[ "$line" =~ ^deb ]]; then if [[ "$line" =~ ^[[:space:]]*deb ]]; then
read -r _ url dist components <<< "$line" read -r _ url dist components <<< "$line"
local key="${url}_${dist}" local key="${url}_${dist}"
if [[ -v "seen_repos[$key]" ]]; then if [[ -v "seen_repos[$key]" ]]; then
@ -113,12 +117,18 @@ cleanup_duplicate_repos() {
mv "$temp_file" "$sources_file" mv "$temp_file" "$sources_file"
chmod 644 "$sources_file" chmod 644 "$sources_file"
fi
local old_pve_files=(/etc/apt/sources.list.d/pve-*.list) local old_pve_files=(/etc/apt/sources.list.d/pve-*.list /etc/apt/sources.list.d/proxmox.list)
for file in "${old_pve_files[@]}"; do for file in "${old_pve_files[@]}"; do
if [ -f "$file" ] && [[ "$file" != "/etc/apt/sources.list.d/pve-enterprise.list" ]]; then if [[ -f "$file" ]]; then
if [ -f "/etc/apt/sources.list.d/proxmox.sources" ]; then local base_name
base_name=$(basename "$file" .list)
local sources_equiv="/etc/apt/sources.list.d/${base_name}.sources"
if [[ -f "$sources_equiv" ]] && grep -q "^Enabled: *true" "$sources_equiv"; then
msg_info "$(translate "Removing old repository file: $(basename "$file")")" msg_info "$(translate "Removing old repository file: $(basename "$file")")"
rm -f "$file" rm -f "$file"
cleaned_count=$((cleaned_count + 1)) cleaned_count=$((cleaned_count + 1))
@ -126,10 +136,12 @@ cleanup_duplicate_repos() {
fi fi
done done
if [ $cleaned_count -gt 0 ]; then
if [ "$cleaned_count" -gt 0 ]; then
msg_ok "$(translate "Cleaned up $cleaned_count duplicate/old repositories")" msg_ok "$(translate "Cleaned up $cleaned_count duplicate/old repositories")"
apt-get update > /dev/null 2>&1 || true apt-get update > /dev/null 2>&1 || true
else else
msg_ok "$(translate "No duplicate repositories found")" msg_ok "$(translate "No duplicate repositories found")"
fi fi
} }