• 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)