create_file.groovy

El archivo create_file.groovy contiene el script Groovy que ejecuta el mandato del paso.

Groovy es un lenguaje de scripts dinámico (similar a Python, Ruby y Perl) para la plataforma Java™. La mayor parte de código escrito en Java es válido sintácticamente en Groovy, lo que hace que Groov y sea muy popular entre los programadores Java. Groovy proporciona soporte nativo a expresiones regulares.

Las primeras líneas de este script crean un objeto de propiedades, props. Después intenta cargar las propiedades del archivo enviado desde el servidor (especificadas por la variable ${PLUGIN_OUTPUT_PROPS}). Si puede cargar el archivo, llena props; de lo contrario genera una excepción.

final def workDir = new File('.').canonicalFile
final def props = new Properties();
final def inputPropsFile = new File(args[0]);
try {
inputPropsStream = new FileInputStream(inputPropsFile);
props.load(inputPropsStream);
}
catch (IOException e) {
throw new RuntimeException(e);
}

Para ejecutar el comando (crear un archivo), el script utiliza las propiedades definidas por el propio paso. El script recupera las tres propiedades de props y crea las variables locales correspondientes.

A continuación, el script crea un archivo con un nombre especificado por fileName, y prueba la variable booleana overwrite. Si existe un archivo con el mismo nombre y el valor de overwrite es falso, el script termina (falla) con un código de salida de 1. Los códigos de salida se pueden examinar durante el postprocesamiento.

De lo contrario, el archivo se escribe con el contenido de contents. Se escribe un mensaje en el registro de salida y el código de salida se define en cero (éxito).

final def fileName = props['file']
final def overwrite = props['overwrite']?.toBoolean()
final def contents = props['contents']?:''

try {
def file = new File(fileName).canonicalFile
if (file.exists() && !overwrite) {
println "File $file already exists!"
System.exit 1
}
else {
file.write(contents)
println "Successfully ${overwrite?'replaced':'created'} file 
$file with contents:"
println contents
}
}
catch (Exception e) {
println "Error creating file $file: ${e.message}"
System.exit(1)
}

System.exit(0)

Comentarios