2013-01-18 11 views
7

Mein Ziel ist es, die Eigenschaft mit der Ausgabe des Befehls "git describe" zu füllen. Ich habe eine Eigenschaft:So weisen Sie die Ausgabe von exec einer Eigenschaft in NAnt zu

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

Und ich will es mit Ausgabe des folgenden Befehls füllen: git

beschreibe ich versuchte:

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

aber im Gegensatz zu dem Ant, NAnt unterstützt nicht outputproperty :(nur Ausgabe (zu Datei).

Antwort

8

Sie haben Recht. Sie haben das Attribut resultproperty, das den Exit-Code enthält, und das Attribut output, um die Ausgabe umzuleiten.

Warum Sie nicht die Ausgabe umleiten und die Datei anschließend über loadfile Aufgabe laden:

<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

Danke, ich tat genau das gleiche schon. Ich suchte nach einer Lösung ohne irgendwelche Temp-Dateien :( – Nagg

+1

Wenn ich dies tue, bekomme ich einen Wagenrücklauf in der Datei, die dann in ' umgewandelt wird' Irgendwelche Ideen? –

3

Mit trimmen, können Sie am Ende loswerden der Wagenrücklaufzeichen bekommen. Zum Beispiel im obigen Beispiel, fügen Sie eine Zeile am Ende, um die Zeichenfolge zu trimmen