task gif(type: Copy) {
from("screenshots")
into("doc")
include("*.gif")
}
['Foo', 'Bar'].each { thing ->
task "gif$thing"(dependsOn: 'test') {
doLast{
exec{
commandLine 'convert', '-delay', '200', "screenshots/${thing}*",
'-resize', '380x',
"screenshots/gif${thing}gif"
}
}
}
gif.dependsOn "gif$thing"
}
Или, возможно
task gifAll {
doLast{
['Foo', 'Bar'].each {thing ->
exec{
commandLine 'convert', '-delay', '200', "screenshots/jpg${thing}*",
'-resize', '380x',
"screenshots/gif${thing}.gif"
}
}
}
}
Если бы это был я, я бы поместил все гифки для конвертации в одну папку и конвертировал все, а не поддерживал список. Таким образом, когда вы добавляете больше картинок в папку, они автоматически конвертируются
Например:
task gifAll {
inputs.dir 'src/main/screenshot'
outputs.dir "$buildDir/converted-screenshots"
doLast{
fileTree('src/main/screenshot').each {thing ->
exec{
commandLine 'convert', '-delay', '200', thing.absolutePath,
'-resize', '380x',
"$buildDir/converted-screenshots/$thing.name"
}
}
}
}
task gif(type: Copy, dependsOn: gifAll) {
from("$buildDir/converted-screenshots")
into("$buildDir/doc")
include("*.gif")
}