logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Table des matières

aptecho un script pour afficher ses fichiers de sources et de preferences

Le script

aptecho
#! /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 :-)

utilisateurs/bendia/tutos/aptecho.txt · Dernière modification: 23/06/2016 13:18 par bendia

Pied de page des forums

Propulsé par FluxBB