create_file.groovy

create_file.groovy ファイルには、ステップのコマンドを実行する Groovy スクリプトが含まれています。

Groovy は、Java™ プラットフォーム用の、Python、Ruby、および Perl などと同様の動的スクリプト言語です。ほとんどの Java コードの構文が Groovy でも有効であることから、Groovy は Java プログラマーに支持されています。また、Groovy は正規表現をネイティブでサポートしています。

スクリプト先頭の数行では、プロパティー・オブジェクトである props を作成しています。 次に、サーバーから送られるファイル (${PLUGIN_OUTPUT_PROPS} 変数で指定) から、そのプロパティーのロードを試みます。ファイルのロードに成功した場合は、props に値を設定します。それ以外の場合は例外をスローします。

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

このコマンド (ファイルの作成) を実行するため、このスクリプトはステップ本体で定義されているプロパティーを使用します。すなわち、props の 3 つのプロパティーを取得し、対応するローカル変数を作成します。

次に、fileName で指定されている名前でファイルを作成し、overwrite ブール変数をテストします。同じ名前のファイルが既に存在し、overwrite が False である場合、スクリプトは終了コード 1 で終了 (失敗) します。終了コードは後処理中に検査できます。

それ以外の場合は、内容が contents であるファイルが書き込まれます。 出力ログにメッセージが書き込まれ、終了コードは 0 (成功) に設定されます。

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)

フィードバック