Nant: ¿Tarea que devuelve/establece una colección de objetos?
-
28-10-2019 - |
Pregunta
Me gustaría aumentar NantcontribEl conjunto de tareas de perforce agregando la p4 labels
tarea.
los p4labels
La tarea tendría que devolver una colección de etiquetas, o incluso idealmente, una colección de información de etiquetas: nombre, fecha/hora, descripción.
Mirando el código de NantContrib para otra llamada (p4info
Por ejemplo), parece que es bastante fácil devolver cadenas simples de una tarea, pero no he logrado encontrar una manera de devolver una colección de etiquetas. Un uso potencial sería pasar esta colección más tarde a una función para obtener la última etiqueta en la colección o a un foreach
Tarea para iterar para lidiar con cada uno dentro de la colección, por ejemplo.
¿Es esto incluso posible en Nant? De todo lo que he visto, parece que puedes declarar conjuntos y colecciones, pero no devolverlos de una tarea o una función.
Para el registro, he declarado un LabelInfo
Tipo nant y un LabelInfoCollection
, pero realmente no sé cómo devolvería uno de una tarea.
Cualquier consejo es bienvenido.
Solución
Mirando a Nantcontrib's sql
tareaLa estrategia para hacer frente al devolver un conjunto de valores, parece que una solución sería almacenar los datos en un archivo y pasar ese archivo a cualquier función o tarea que requiera los datos.
Entonces sería posible pasar esto a la presentación a un foreach
tarea que puede iterar sobre el líneas en el archivo. Los datos almacenados en formato CSV son muy fáciles de analizar:
<p4labels user="bob" filter="*VerifiedBuild*" max=100 output="myfile.csv" />
<foreach item="Line" in="myfile.csv" delim="," property="label,date,comment">
<echo message="Label: ${label} Created on: ${date} - ${comment}" />
</foreach>