====== aptecho un script pour afficher ses fichiers de sources et de preferences ====== * Objet : Une seule commande pour afficher les sources * Niveau requis : {{tag>débutant}} * Commentaires : //Pour les feignants qui préfèrent taper une seule commande au lieu de 4 // * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) Mais aussi [[doc:programmation:shell:path|le path ou comment Debian sait situer vos commandes]], et enfin [[doc:systeme:chmod|la commande chmod]] ===== Le script ===== #! /bin/bash # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # # # Liste des fichier du sossier /etc/apt/sources.list.d avec l'extension .list liste_sources=$(find /etc/apt/sources.list.d -type f -name *.list) # Liste des fichiers de preference du dossier /etc/apt/preferences.d list_pref=$(find /etc/apt/preferences.d -type f) function usage () { echo "-s affichage sur la sortie standard" echo "-b sortie bbcode adapté à la coloration syntaxique avec geshi" } function sortie_std () { # Test pour savoir si pygmentize existe # La commande de concatenation sera cat si elle n'est pas disponible, et pygmentize sinon ! pygmentize -V > /dev/null 2>&1 if [ $? -eq 0 ] then echo Ce script peut utiliser pygmentize pour colorer la sortie standard echo -e "Pour bénéficier de cette fonctionalité \n installer python-pygments avec apt-get install python-pygments" echo "Le script utilisera cat sans coloration pour l'instant" comCat="cat" else comCat="pygmentize -g" fi # Encadre le nom des fichiers par des dièses function pagination() { function hashtags () { echo -en "\033[1;33m" for((rc=0;rc<=$1+3;rc++)) do echo -en "#" done echo -e "\033[m" } function hashspaces () { echo -en "\033[1;33m" echo -en "#" for((nc=0;nc<$1+2;nc++)) do echo -en " " done echo -e "#\033[m" } #nbcar=$(echo -n $1 | wc -m) equivalent à la ligne suivante, merci Hypathie ;) nbcar=${#1} hashtags $nbcar hashspaces $nbcar echo -en "\033[1;33m# " echo -n $1 echo -e " #\033[m" hashspaces $nbcar hashtags $nbcar } pagination "Contenu de /etc/apt/sources.list" $comCat /etc/apt/sources.list #Saute 2 lignes for((rc=0;rc<=3;rc++)) do echo done #Affichage du contenu du dossier /etc/apt/sources.list.d for ligne in $liste_sources do if [ -s $ligne ] then pagination "Contenu de $ligne" $comCat $ligne echo fi done # Affichage du fichier principal de preferences if [ -s /etc/apt/preferences ] then pagination "Contenu de /etc/apt/preferences" $comCat /etc/apt/preferences fi #Affichage des fichiers de /etc/apt/prefrences.d for ligne in $list_pref do if [ -s $ligne ] then pagination "Contenu de $ligne" $comCat $ligne fi done } function bbcode { #Définitiopn des balises bbcode bal_src="[code=apt_sources]" bal_pref="[code=apt_preferences]" bal_close="[/code]" #Sources.list principal echo "/etc/apt/sources.list" echo $bal_src cat /etc/apt/sources.list echo $bal_close # Fichiers de /etc/apt/sources.list.d for ligne in $liste_sources do if [ -s $ligne ] then echo $ligne echo $bal_src cat $ligne echo $bal_close echo fi done # preferences principal if [ -s /etc/apt/preferences ] then echo "/etc/apt/preferences" echo $bal_pref cat /etc/apt/preferences echo $bal_close fi # preferences de /etc/apt/prefrences.d for ligne in $list_pref do if [ -s $ligne ] then echo "$ligne" echo $bal_pref cat $ligne echo $bal_close fi done } #Verification d'au moins une option # Par défaut sortie standard if [ $# -eq 0 ] then sortie_std fi # Choix des options while getopts sb option do case $option in s) sortie_std ;; b) bbcode ;; ?) echo usage ;; esac done ===== Installation ===== Télécharger le script et le rendre exécutable avec chmod a+x aptecho Le placer dans //~/.local/bin/// S'assurer que ce dossier est bien dans votre PATH avec echo $PATH Si c'est le cas, tout roule, sinon, ajouter dans votre fichier //~/.bashrc// export PATH=$PATH:~/.local/bin ===== Utilisation ===== Pour un affichage en couleur des fichiers à l'écran (nécessite la présence de la commande ''pygmentize'' du paquet ''python-pygments' aptecho #ou aptecho -s Pour un affichage avec les balises //bbcode// prêtes à l’emploi pour le forum DF aptecho -b Enjoy :-)