NAnt

2013-01-18 15 views
7

'da yürütmenin çıktısı nasıl atanır? Amacım, özelliği "git describe" komutunun çıktısıyla doldurmaktır.NAnt

<exec program='${git.executable}' outputproperty='build.version'> 
    <arg value='describe' /> 
</exec> 

ama Ant, NAnt aksine: git denedim

açıklamaktadır: Ben bir özelliği vardır:

<property name="build.version" value = ""/> 

Ve aşağıdaki komutu çıkışını ile doldurmak istiyor outputproperty :(sadece çıktı (dosyaya) desteklemez.

cevap

8

Haklısınız. Çıkış kodunu ve output özniteliğini çıktıya yönlendirmek için resultproperty özniteliğine sahipsiniz.

Neden çıktıyı yönlendirme yapmayan ve loadfile görev yoluyla sonradan dosyasını yüklemek: Trim kullanarak

<target name="foo"> 
    <property 
    name="git.output.file" 
    value="C:\foo.txt" /> 
    <exec program="${git.executable}" output="${git.output.file}"> 
    <arg value="describe" /> 
    </exec> 
    <loadfile 
    file="${git.output.file}" 
    property="git.output" /> 
</target> 
+2

Teşekkür kesmek için sonunda bir satır ekleyin. Herhangi bir temp dosyası olmadan bir çözüm arıyordum :( – Nagg

+1

Bunu yaptığımda, dosyada bir satırbaşı getirisi alıyorum, sonra ' ' Herhangi bir fikre dönüştürülüyor? –

3

, sen sonunda satırbaşı karakteri kurtulmuş oluruz. Örneğin, yukarıdaki örnekte, tam olarak zaten aynı yaptım, dize

<target name="foo"> 
    <property 
    name="git.output.file" 
    value="C:\foo.txt" /> 
    <exec program="${git.executable}" output="${git.output.file}"> 
    <arg value="describe" /> 
    </exec> 
    <loadfile 
    file="${git.output.file}" 
    property="git.output" /> 

    <property name="git.ouput.trimmed" value="${string::trim(git.output)}" /> 

</target> 
İlgili konular