File tree Expand file tree Collapse file tree 2 files changed +37
-15
lines changed
Expand file tree Collapse file tree 2 files changed +37
-15
lines changed Original file line number Diff line number Diff line change 1+ import org.gradle.api.DefaultTask
2+ import org.gradle.api.file.ConfigurableFileCollection
3+ import org.gradle.api.file.DirectoryProperty
4+ import org.gradle.api.tasks.InputDirectory
5+ import org.gradle.api.tasks.InputFiles
6+ import org.gradle.api.tasks.OutputDirectory
7+ import org.gradle.api.tasks.TaskAction
8+
9+ abstract class GenerateManifestTask : DefaultTask () {
10+ @get:InputFiles
11+ abstract val testFiles: ConfigurableFileCollection
12+
13+ @get:InputDirectory
14+ abstract val baseResourcesDir: DirectoryProperty
15+
16+ @get:OutputDirectory
17+ abstract val outputDir: DirectoryProperty
18+
19+ @TaskAction
20+ fun generate () {
21+ val baseDirFile = baseResourcesDir.get().asFile
22+ val paths = testFiles.files
23+ .map { file -> " /" + file.relativeTo(baseDirFile).path }
24+ .sortedWith(compareBy<String > { path -> path.count { it == ' /' } }.thenBy { it })
25+
26+ val suitesFolder = outputDir.get().asFile.resolve(" suites" )
27+ suitesFolder.mkdirs()
28+
29+ suitesFolder.resolve(" JSON-Schema-Test-Suite.txt" ).writeText(paths.joinToString(" \n " ))
30+ }
31+ }
Original file line number Diff line number Diff line change @@ -25,22 +25,13 @@ dependencies {
2525 }
2626}
2727
28- val generateTestManifest by tasks.registering {
29- val resourceDir = layout.projectDirectory.dir(" src/test/resources/suites/JSON-Schema-Test-Suite/tests" )
30- inputs.dir(resourceDir)
31- outputs.dir(temporaryDir)
28+ val generateTestManifest by tasks.registering(GenerateManifestTask ::class ) {
29+ val resourcesPath = " src/test/resources"
30+ val testsPath = " $resourcesPath /suites/JSON-Schema-Test-Suite/tests"
3231
33- val tests = resourceDir.asFileTree
34-
35- doLast {
36- val paths = tests
37- .map { file -> " /" + file.relativeTo(layout.projectDirectory.dir(" src/test/resources" ).asFile).path }
38- .sortedWith (compareBy<String > { path -> path.count { it.toString() == " /" } }.thenBy { path -> path })
39- val outputDir = File (temporaryDir, " suites" )
40- outputDir.mkdirs()
41- val outputFile = File (outputDir, " JSON-Schema-Test-Suite.txt" )
42- outputFile.writeText(paths.joinToString(" \n " ))
43- }
32+ baseResourcesDir.set(layout.projectDirectory.dir(resourcesPath))
33+ testFiles.from(layout.projectDirectory.dir(testsPath).asFileTree)
34+ outputDir.set(temporaryDir)
4435}
4536
4637sourceSets {
You can’t perform that action at this time.
0 commit comments