Execute shell script in Gradle

Paul Latzelsperger picture Paul Latzelsperger · Aug 29, 2014 · Viewed 51.2k times · Source

I have a gradle build setup at the beginning of which I want to execute a shellscript in a subdirectory that prepares my environment.

task build << {
}
task preBuild << {
    println 'do prebuild stuff:'
}
task myPrebuildTask(type: Exec) {
    workingDir "$projectDir/mySubDir"
    commandLine './myScript.sh'
}

build.dependsOn preBuild
preBuild.dependsOn myPrebuildTask

However, when I execute the task either by calling gradle myPrebuildTask or by simply building the project, the following error occurs:

> A problem occurred starting process 'command './myScript.sh''

Unfortunately, thats all I get.
I have also tried the following - same error.

commandLine 'sh mySubDir/myScript.sh'

I use Gradle 1.10 (needed by Android) on Windows, inside a Cygwin shell. Any ideas?

Answer

Rene Groeschke picture Rene Groeschke · Aug 29, 2014

use

commandLine 'sh', './myScript.sh'

your script itself is not a program itself, that's why you have to declare 'sh' as the program and the path to your script as an argument.