From 49b322d962e300b41daaff78e742d7d716cff677 Mon Sep 17 00:00:00 2001 From: Jason Hoch Date: Sat, 11 Feb 2017 01:48:44 -0500 Subject: [PATCH] Adds configuration to proceed if pidFile exists. - Fixes #27 - If the process was killed but the pidFile was not deleted, this will proceed without executing command (silent failure). - Defaults to previous behavior (fail if pidFile exists) - Also changes "Server" to "$command" in exception message. --- .../gradle/spawn/SpawnProcessTask.groovy | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/groovy/com/wiredforcode/gradle/spawn/SpawnProcessTask.groovy b/src/main/groovy/com/wiredforcode/gradle/spawn/SpawnProcessTask.groovy index effcb03..a805858 100644 --- a/src/main/groovy/com/wiredforcode/gradle/spawn/SpawnProcessTask.groovy +++ b/src/main/groovy/com/wiredforcode/gradle/spawn/SpawnProcessTask.groovy @@ -7,6 +7,7 @@ import org.gradle.api.tasks.TaskAction class SpawnProcessTask extends DefaultSpawnTask { String command String ready + boolean strict = true; List outputActions = new ArrayList() @Input @@ -31,10 +32,16 @@ class SpawnProcessTask extends DefaultSpawnTask { } def pidFile = getPidFile() - if (pidFile.exists()) throw new GradleException("Server already running!") - - def process = buildProcess(directory, command) - waitToProcessReadyOrClosed(process) + if (pidFile.exists()) { + if (strict) { + throw new GradleException("$command already running!") + } else { + logger.quiet "$command already running; proceeding." + } + } else { + def process = buildProcess(directory, command) + waitToProcessReadyOrClosed(process) + } } private void waitToProcessReadyOrClosed(Process process) {