[Toulouse-pm] CPANSTATS et XML::Simple

Michel Rodriguez mirod at xmltwig.com
Thu Feb 6 09:29:00 CST 2003


Salut,

Un truc sympa, qui permet a Leon de produire des rapports sur les
modules installes chez les utilisateurs de Perl:

CPANSTATS http://www.astray.com/cpanstats/

Un petit bout de code qui fait le Big Brother et qui envoie a
http://www.astray.com/cpanstats/service.cgi la liste des modules
installes sur votre becane (tout en preservant la confidentialite, blah
blah ;--). A partir de ca il consolide le tout et on peut voir qui
utilise quoi (ou au moins qui a quoi d'installe'). Interessant, surtout
de voir les antiquites que certains utilisent (XML::Parser 2.20!
XML::Twig 2.02! Je reve!).

Apres il suffit de mettre ca dans la cron pour que cpanstats informe
regulierement Leon de l'etat de la machine.

A part ca je me suis un peu amuse dernierement avec XML::Simple, et du
coup j'ai envoye queques patches (en cours d'integration), et j'ai
ajoute une methode 'simplify' a XML::Twig, qui genere la meme structure
que XML::Simple pour un element ou un document parse par XML::Twig...
rigolo!

En gros les patches me permettent de prendre un fichier de config comme
ca:

<config host="laptop.xmltwig.com">
  <dbms>postgresql</dbms>
  <server>localhost</server>
  <dirs>
    <dir name="base">/home/mrodrigu</dir>
    <dir name="tools">$base/tools</dir>
    <dir name="templ">$tools/templates</dir>
  </dirs>
  <templates>
    <template name="view">$templ/std_def.templ</template>
    <template name="edit">$templ/std_edit.templ</template>
  </templates>
</config>


et permettent de generer un structure compacte et ou les variables sont
remplacees:

perl -MXML::Simple -MYAML -e'print Dump XMLin "ex_conf", var => name,
unwrap_tags => ["dirs", "templates"], extra_folding => 1'

dbms: postgresql
dir:
  base: '/home/mrodrigu'
  templ: '/home/mrodrigu/tools/templates'
  tools: '/home/mrodrigu/tools'
host: laptop.xmltwig.com
server: localhost
template:
  edit: '/home/mrodrigu/tools/templates/std_edit.templ'
  view: '/home/mrodrigu/tools/templates/std_def.templ'


Au lieu de ca a la base:
perl -MXML::Simple -MYAML -e'print Dump XMLin "ex_conf"

dbms: postgresql
dirs:
  dir:
    base:
      content: '/home/mrodrigu'
    templ:
      content: '$tools/templates'
    tools:
      content: '$base/tools'
host: laptop.xmltwig.com
server: localhost
templates:
  template:
    edit:
      content: '$templ/std_edit.templ'
    view:
      content: '$templ/std_def.templ'


Cool non?

Comme je suis dans le code en ce moment, si vous utilisez XML::Simple et
que vous avez des idees pour l'ameliorer, ne vous genez pas pour me les
transmettre (apres je filtrerais et Grant, l'auteur aussi donc ce
ressemblera plus du tout a ce que vous imaginiez... ;--)
 
-- 
Michel Rodriguez
Perl &amp; XML
http://www.xmltwig.com



More information about the Toulouse-pm mailing list