une =?iso-8859-1?Q?biblioth=E8que_pour_g?= =?iso-8859-1?Q?=E9rer?= fich
From
Marc Chantreux@21:1/5 to
All on Fri Nov 22 12:10:01 2024
salut,
les fichiers control (apt-cache show) et l'index de /usr/share/doc-base utilisent
le même format très simplle et qui ressemble un peu à gnurec sans en
être (donc on peut pas faire recsel -e Package control pour afficher les
noms des paquets).
à cause de perl, j'ai toujours eu la flême d'aller chercher un outils
plus adapté: je dégaine facilement des trucs comme ça¹ en me disant
qu'un jour je chercherais une façon propre de faire.
sauf que je bosse sur un truc qui risque de finir en prod et le moment
est donc venu de répondre à la question qui ne m'a pas tarraudé ces 20 dernières années: est-ce que le format des fichiers control a un nom et
une bibliothèque canonique au sein du projet debian pour le lire.
(je pourrais regarder les outils debian mais je soupçonne que le
problème va être le même: chacun y va de son petit parser maison
tellement le format est simple).
par avance merci et bien à vous tou*,
¹: exemple de perl pour parser les control
apt-cache show perl | perl -0 -MJSON -lnE '
my %data =
map s/^[\n ]+|[\n ]+$//gr,
sub { @_[1..$#_] }->( split /(?:\n|^^)([^\n: ]+): */xms );
$_ = [
map [split / *\| */],
split /, */
] for @data{qw( Replace Depends Suggests)};
print encode_json \%data;
' | jq
--
Marc Chantreux
Pôle CESAR (Calcul et services avancés à la recherche)
Université de Strasbourg
14 rue René Descartes,
BP 80010, 67084 STRASBOURG CEDEX
03.68.85.60.79
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)