You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
920 B
Groovy
34 lines
920 B
Groovy
package org.xbib.gradle.plugin.jacc
|
|
|
|
import org.gradle.api.DefaultTask
|
|
import org.gradle.api.tasks.InputFiles
|
|
import org.gradle.api.tasks.OutputDirectory
|
|
import org.gradle.api.tasks.TaskAction
|
|
import org.xbib.jacc.Jacc
|
|
|
|
class JaccTask extends DefaultTask {
|
|
|
|
@InputFiles
|
|
Iterable<File> source
|
|
|
|
@OutputDirectory
|
|
File target
|
|
|
|
@TaskAction
|
|
void generateAndTransformJacc() throws Exception {
|
|
source.each { file ->
|
|
String pkg = getPackageName(file)
|
|
File fullTarget = new File(target, pkg.replace('.','/'))
|
|
project.mkdir(fullTarget)
|
|
Jacc.main([file.absolutePath, '-d', fullTarget] as String[])
|
|
}
|
|
}
|
|
|
|
static String getPackageName(File file) {
|
|
String string = file.readLines().find { line ->
|
|
line.startsWith('package')
|
|
}
|
|
return string == null ? '' : string.substring(8, string.length() - 1)
|
|
}
|
|
}
|