2017-10-17 39 views
1

J'ai une tâche ANT qui écrit actuellement la dernière git commit hash court à un fichier de version:Utilisez ANT pour mettre à jour un fichier YML avec sortie exec

<target name="write-version-file-uat"> 
    <exec executable="git" failonerror="true" output="${basedir}/some/path/version.html.twig"> 
     <arg value="rev-parse"/> 
     <arg value="--short"/> 
     <arg value="HEAD"/> 
     <redirector> 
      <outputfilterchain> 
       <striplinebreaks /> 
       <trim /> 
      </outputfilterchain> 
     </redirector> 
    </exec> 
</target> 

Je souhaite modifier cette tâche de mettre à jour une variable un fichier version.yml.dist:

parameters: 
    version: version_value 

et la sortie du nouveau fichier à version.yml

parameters: 
    version: this2is1ahash 

Ho w puis-je changer le redirecteur pour écrire dans cette variable? Ai-je besoin de créer un fichier de version temporaire, puis d'exécuter une autre tâche pour obtenir ce contenu et mettre à jour la variable ou puis-je le faire en même temps?

Répondre

1

J'ai obtenu ci-dessus en utilisant ce qui suit, mais je ne suis pas sûr que c'est la solution la plus propre:

<target name="write-version-file"> 
    <exec executable="git" failonerror="true" output="${basedir}/some/path/version.yml"> 
     <arg value="describe"/> 
     <arg value="--tags"/> 
     <redirector> 
      <outputfilterchain> 
       <striplinebreaks /> 
       <trim /> 
       <prefixlines prefix="parameters: ${line.separator} version: " /> 
      </outputfilterchain> 
     </redirector> 
    </exec> 
</target> 
+0

semble correct pour moi! –