sl-test
Description:
sl-test est un outil de diagnostique des fichiers sources apt au format ‹ *.list ›, et ‹ *.sources › (DEB822). Par défaut, sl-test liste les fichiers list/sources actifs ou non, teste les domaines associés ainsi que leur éventuel redirection.
sl-test détecte aussi les lignes ‹ pseudo-vides › (contenant des espaces) des fichiers multi-sources, cause de dysfonctionnement apt difficile à diagnostiquer, signalé par « |◄ !! » (avertissement seulement, sans correction) et fichier(s) concerné(s).
Options:
-c , –content : liste le contenu numéroté des lignes non commentées des fichiers list/sources
-e , –enabled : liste les [domaines + branches] uniquement activés, et teste leur éventuel redirection.
sl-test 20260822
#!/bin/bash
# sl-test : liste des fichiers source apt + test domaines # 20260822 #
grep -lm1 '^ ' /etc/apt/s*d/*s && \
printf '\e[38;5;215m !! lignes commençant pas un espace à corriger !!\e[m\n'
if [[ $1 == *c* ]] ; then
for F in $(grep -slm1 '^[dU]' /etc/apt/s*{t,d/*[st]}) ; do
printf "%0.s―" {1..23}
printf "\n${F%/*}/\e[38;5;85m${F##*/}\e[m\n"
mawk '!/#/{sub("^ "," |◄ !!")
printf "\x1b[38;5;228m%3d\x1b[m %s\n",NR,$0}' $F
done ; exit
fi
R="$(for F in $(grep -sl '^d' /etc/apt/s*{t,*d/*t}) ; do printf "${F##*/}\n"
sed '/^deb /!d;s~.*//~~;s~/[^ ]*~~' $F ; done
for F in $(grep -sl '^U' /etc/apt/s*d/*.sources ) ; do printf "${F##*/}\n"
mawk -v n=$(sed -n $= $F) '/^U/{gsub("h.*//|/.*","");u=$2};/^Su/{s=$2}
/^C/{$1="";c=$0}/^E.*no/{e="N"}{if((/^$/)||(NR==n)){print u,s,c,e;e=""}}' $F
done)"
if [[ $1 == *e* ]] ; then e=N
printf "$R" |sort| mawk 'NF>1{if($0!~"N"){printf " %-30s",$1; $1="";print $0}}'
else printf "$R" | mawk '{if(NF==1){printf "\x1b[1;32m%s\x1b[m\n",$1}
if(NF>1){sub("N","");printf " %-30s",$1; $1="";print $0}}'
e=X
fi
echo
while read H ; do printf "\e[38;5;117m %-38s\e[m" $H
ping -c1 $H | \
mawk 'NR==1{if($2!=h)printf "\n ↳ %-35s",$2}/%/{print (/0%/?": OK":": ?")}' h=$H
done < <(printf "$R" |sed "/$e/d" | mawk 'NF>1{print $1}' |sort -u)
echo
exit 0
Exemple:

Test exclusivement des sources actives (option -e):

Contenu des fichiers sources (option -c)

Note: afin que ce fil ne devienne pas une demande de support général, ou demande d’explication sur du code bash, je suggère que toute question/observation soit adressée @Commentaires sur sl-test. Ce sujet est exclusivement réservé aux utilisateurs de sl-test qui auraient un ‹ vrai bug › à signaler, démonstration factuelle à l’appui, ou une suggestion d’amélioration fonctionnelle.