Table des matières

Arborescence du Wiki

Ce tuto ne concerne pas les rédacteurs du Wiki, qui doivent eux créer leur tutos dans l'atelier :-)

Le Wiki est organisé suivant l'arborescence suivante :

Grandes lignes

Arborescence

les éléments en gras représentent des dossiers

Mettre un tuto à sa place

Ce paragraphe s'adresse principalement aux modérateurs, seuls habilités à déplacer les tutos (et encore, pas encore :-P).

Identifier le paquet

Pour identifier de quel paquet vient une application installée, on utilise dpkg -S appli.

Exemple :

dpkg -S ifconfig
...
net-tools: /sbin/ifconfig
...

Nous indique que l'appli ifconfig est dans le paquet net-tools.

Pour une application qui n'est pas installée, il faudra utiliser apt-file.

Identifier la section

Pour identifier à quelle section appartient un paquet, on utilise apt-cache show paquet | grep “^Section”.

Exemple :

apt-cache show net-tools | grep "^Section"''
Section: net

La page ifconfig est donc classée dans :doc:reseau:ifconfig.

Exemple

Ou pour une application, par exemple dvdauthor :

apt-cache show dvdauthor | grep "^Section"''
Section: video

Où l'on voit que que le tuto : dvdauthor sera créé dans la page :doc:media:video:dvdauthor

Automatisation

Voici un script tentant d'automatiser la détection de la nouvelle adresse en fonction du nom de la page :

guess-new-path.sh
#!/bin/bash
set -e
set -x
set -u
 
APP=$1
 
PACKAGE=$(apt-cache search -n '^'"$APP"'$' |cut -f1 -d' ')
 
if [ -z "$PACKAGE" ];
then
  PACKAGE=$(apt-file search -F -l "/usr/bin/$APP")
fi
 
if [ -z "$PACKAGE" ];
then
  PACKAGE=$(apt-file search -F -l "/bin/$APP")
fi
 
if [ -z "$PACKAGE" ];
then
  PACKAGE=$(apt-file search -F -l "/sbin/$APP")
fi
 
if [ -z "$PACKAGE" ];
then
  PACKAGE=$(apt-file search -F -l "/usr/sbin/$APP")
fi
 
if [ -z "$PACKAGE" ];
then
  echo "Paquet non-trouvé"
  exit 1
fi
 
SECTION=$(apt-cache show $PACKAGE | sed -n '/^Section/s/^Section: //p')
 
declare -A paths
 
paths["unknown"]="doc:autres"
paths["virtual"]="doc:autres"
paths["admin"]="doc:systeme"
paths["alien"]="doc:systeme"
paths["base"]="doc:programmation"
paths["cli-mono"]="doc:programmation"
paths["comm"]="doc:reseau"
paths["database"]="doc:programmation"
paths["debug"]="doc:systeme"
paths["devel"]="doc:programmation"
paths["editors"]="doc:editeurs"
paths["electronics"]="doc:electronique"
paths["embedded"]="doc:electronique"
paths["fonts"]="doc:media"
paths["games"]="doc:jeux"
paths["gnome"]="doc:environnements:gnome"
paths["gnu-r"]="doc:sciences"
paths["gnustep"]="doc:programmation"
paths["graphics"]="doc:media"
paths["hamradio"]="doc:media"
paths["haskell"]="doc:programmation"
paths["httpd"]="doc:reseau"
paths["interpreters"]="doc:programmation"
paths["java"]="doc:programmation"
paths["kernel"]="doc:systeme"
paths["kde"]="doc:environnements:kde"
paths["libdevel"]="doc:programmation"
paths["libs"]="doc:programmation"
paths["lisp"]="doc:programmation"
paths["localization"]="doc:systeme"
paths["mail"]="doc:reseau"
paths["math"]="doc:sciences"
paths["misc"]="doc:autres"
paths["net"]="doc:reseau"
paths["news"]="doc:reseau"
paths["ocaml"]="doc:programmation"
paths["oldlibs"]="doc:systeme"
paths["otherosfs"]="doc:systeme"
paths["perl"]="doc:programmation"
paths["php"]="doc:programmation"
paths["python"]="doc:programmation"
paths["ruby"]="doc:programmation"
paths["science"]="doc:sciences"
paths["shells"]="doc:programmation"
paths["sound"]="doc:media"
paths["tex"]="doc:sciences"
paths["text"]="doc:editeurs"
paths["utils"]="doc:systeme"
paths["video"]="doc:media"
paths["vcs"]="doc:systeme"
paths["web"]="doc:reseau"
paths["x11"]="doc:environnements:x11"
paths["xfce"]="doc:environnements:xfce"
paths["zope"]="doc:programmation"
 
 
 
NEWPATH=${paths[${SECTION}]}":"$APP
 
echo "Page=$APP Paquet=$PACKAGE Section=$SECTION NouveauNom=$NEWPATH"