使用ANT更新带有exec输出的YML文件

时间:2017-10-17 11:16:12

标签: git symfony ant

我有一个ANT任务,目前将最后一个git short commit hash写入版本文件:

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

我想更改此任务以更新version.yml.dist文件中的变量:

parameters:
    version: version_value

并将新文件输出到version.yml

parameters:
    version: this2is1ahash

如何更改重定向器以写入此变量?

我是否需要创建临时版本文件,然后运行其他任务以获取该内容并更新变量,或者我可以一次完成所有操作吗?

1 个答案:

答案 0 :(得分:1)

我使用以下内容实现了上述目标,但我不确定它是最干净的解决方案:

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