Groovy é uma linguagem de script dinâmica (semelhante a Python, Ruby e Perl) para a plataforma Java™. A maioria do código Java também é Groovy sintaticamente válido, o que torna o Groovy popular com programadores Java. Groovy fornece suporte nativo para expressões regulares.
As primeiras linhas do script criam um objeto de propriedades, props. Em seguida, ele tenta carregar as propriedades do arquivo que é enviado a partir do servidor (especificado pela variável ${PLUGIN_OUTPUT_PROPS}). Se ele puder carregar o arquivo, preencherá props; caso contrário, lançará uma exceção.
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 executar o comando (criar um arquivo), o script usa as propriedades que são definidas pela etapa em si. O script recupera as três propriedades de props e cria variáveis locais correspondentes.
Em seguida, o script cria um arquivo com um nome especificado por fileName, e testa a variável Booleana overwrite. Se um arquivo com o mesmo nome existe e overwrite é falso, o script termina (falha) com um código de saída igual a 1. Os códigos de saída podem ser examinados durante o pós-processamento.
Caso contrário, o arquivo é gravado com o conteúdo de contents. Uma mensagem é gravada no log de saída e o código de saída é configurado como 0 (sucesso).
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)