33package org.jetbrains.experimental.gradle.datalyzer
44
55import com.github.ajalt.mordant.terminal.Terminal
6- import org.jetbrains.experimental.gradle.datalyzer.utils.replaceNonAlphaNumeric
76import java.io.BufferedOutputStream
87import java.io.BufferedWriter
98import java.io.File
@@ -13,19 +12,24 @@ import java.nio.file.StandardOpenOption.SYNC
1312import java.util.zip.ZipEntry
1413import java.util.zip.ZipOutputStream
1514import kotlin.io.path.*
15+ import org.jetbrains.experimental.gradle.datalyzer.utils.replaceNonAlphaNumeric
1616
1717/* *
1818 * Gather information about the Gradle project, and save it to disk.
1919 */
2020internal class Reporter (
21- private val reportsDir : Path ,
21+ reportsDir : Path ,
2222 private val terminal : Terminal ,
2323) {
24- private val scripts = reportsDir.resolve(" scripts.md" )
25- private val log = reportsDir.resolve(" output.log" )
24+ private val reportZip = reportsDir.resolve(" ${reportsDir.name} .zip" )
25+ private val dataDir = reportsDir.resolve(" data" )
26+
27+ private val scripts = dataDir.resolve(" scripts.md" )
28+ private val log = dataDir.resolve(" output.log" )
2629
2730 init {
2831 reportsDir.createDirectories()
32+ dataDir.createDirectories()
2933 scripts.createFile()
3034 log.createFile()
3135 }
@@ -67,15 +71,15 @@ internal class Reporter(
6771
6872
6973 fun taskOutput (taskName : String ): BufferedOutputStream {
70- return reportsDir
74+ return dataDir
7175 .resolve(" task-stdout-${taskName.replaceNonAlphaNumeric()} -${System .currentTimeMillis()} .txt" )
7276 .createFile()
7377 .outputStream()
7478 .buffered()
7579 }
7680
7781 fun taskData (taskName : String ): BufferedWriter {
78- return reportsDir
82+ return dataDir
7983 .resolve(" task-data-${taskName.replaceNonAlphaNumeric()} -${System .currentTimeMillis()} .txt" )
8084 .createFile()
8185 .bufferedWriter()
@@ -100,15 +104,15 @@ internal class Reporter(
100104 }
101105
102106 fun zip (): Path {
103- val zipFile = reportsDir.parent.resolve( " ${reportsDir.name} .zip " ) .apply {
107+ val zipFile = reportZip .apply {
104108 if (exists()) deleteExisting()
105109 createFile()
106110 }
107111
108112 ZipOutputStream (zipFile.outputStream().buffered()).use { zip ->
109- reportsDir .walk().forEach { src ->
113+ dataDir .walk().forEach { src ->
110114 val zipFileName = src.absolute().invariantSeparatorsPathString
111- .removePrefix(reportsDir .absolute().invariantSeparatorsPathString)
115+ .removePrefix(dataDir .absolute().invariantSeparatorsPathString)
112116 .removePrefix(" /" )
113117 .let { if (src.isDirectory()) " $it /" else it }
114118
0 commit comments