vendredi 22 janvier 2010

ant : linéariser un fichier LDIF via une expression régulière


Description


Ant permet de traiter des fichiers grâce à des expressions régulières.
Voici un exemple simple permettant de traiter des fichiers LDIF.


Exemple


Par défaut, les fichiers LDIF exportés sont sur 72 caractères. Les lignes coupées sont facilement visibles : elles commencent par un caractère blanc.
Objectif : réunir les lignes coupées en suppriment le caractère blanc en trop.
Problème : les fichiers LDIF, même sous Windows, sont souvent au format Unix. Le programme les mettra au format Windows grâce à la tâche fixcrlf.


Pour tester, taper la ligne suivante en ligne de commande :ant -f traiteLdif.xml
à supposer que le fichier d'exemple ci-après se nomme traiteLdif.xml.


<?xml version="1.0" encoding="ISO-8859-1"?>

<project name="doRR" default="doRR" basedir=".">

<description> linearise un LDIF </description>

<property name="rrLdif.rep.in" value="./in/replaceregexp"/>
<property name="rrLdif.rep.out" value="./out/replaceregexp"/>

<target name="doRR" >
<delete includeemptydirs="true" failonerror="false" dir="${rrLdif.rep.out}"/>
<mkdir dir="${rrLdif.rep.out}"/>

<copy todir="${rrLdif.rep.out}" flatten="false" overwrite="true" verbose="false">
<fileset dir="${rrLdif.rep.in}">
<include name="**/*.ldif" />
</fileset>
</copy>

<fixcrlf srcdir="${rrLdif.rep.out}" includes="**/*.ldif" eol="crlf" />

<replaceregexp match=" " replace="" byline="false" flags="gm">
<fileset dir="${rrLdif.rep.out}" includes="**/*.ldif"/>
</replaceregexp>

</target>

</project>


Bonnes pratiques



  • utiliser des propriétés ( des constantes ) pour la réutilisabilité du code.



Bon point



  • les tâches fixcrlf et replaceregexp peuvent empêcher la mise à jour du timestamp des fichiers modifiés.


Plus d'informations sur



  • la tâche fixcrlf ici.

  • la tâche replaceregexp ici.

  • Ant ici.




Aucun commentaire:

Enregistrer un commentaire