create_file.groovy

Die Datei create_file.groovy enthält das Groovy-Script, das den Befehl des Scripts ausführt.

Groovy ist eine dynamische Scriptsprache (ähnlich wie Python, Ruby und Perl) für die Java™-Plattform. Der Java-Code ist zum Großteil auch syntaktisch korrekt für Groovy und daher ist Groovy bei Java-Programmierern beliebt. Groovy bietet native Unterstützung für reguläre Ausdrücke.

Die ersten Zeilen des Scripts erstellen ein Eigenschaftenobjekt, props. Danach versucht es, die Eigenschaften aus der Datei zu laden, die vom Server gesendet wird (angegeben durch die ${PLUGIN_OUTPUT_PROPS}-Variable). Wenn es die Datei laden kann, schreibt es Werte in props, sonst wird eine Ausnahmebedingung ausgegeben.

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);
}

Um den Befehl auszuführen (Datei erstellen), verwendet das Script die Eigenschaften, die vom Schritt selbst definiert werden. Das Script ruft die drei Eigenschaften aus props ab und erstellt die entsprechenden lokalen Variablen.

Als Nächstes erstellt das Script eine Datei mit einem Namen, der durch fileName definiert wird, und testet die boolesche Variable overwrite. Wenn eine Datei mit demselben Namen vorhanden ist und overwrite den Wert "falsch" hat, endet das Script (Fehlschlag) mit einem Beendigungscode 1. Beendigungscodes können während der Nachverarbeitung geprüft werden.

Sonst wird die Datei mit dem Inhalt von contents geschrieben. Eine Nachricht wird in das Ausgabeprotokoll geschrieben und der Beendigungscode wird auf 0 (Erfolg) gesetzt.

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 "Datei $file bereits vorhanden!"
System.exit 1
}
else {
file.write(contents)
println "Erfolg bei ${overwrite?'replaced':'created'} der Datei 
$file mit Inhalten:"
println contents
}
}
catch (Exception e) {
println "Fehler beim Erstellen der Datei $file: ${e.message}"
System.exit(1)
}

System.exit(0)

Feedback