diff --git a/analyzer/src/main/kotlin/managers/Npm.kt b/analyzer/src/main/kotlin/managers/Npm.kt index a1ab57567181..409762b2d2be 100644 --- a/analyzer/src/main/kotlin/managers/Npm.kt +++ b/analyzer/src/main/kotlin/managers/Npm.kt @@ -425,7 +425,7 @@ open class Npm( protected open fun getRemotePackageDetails(workingDir: File, packageName: String): JsonNode { val process = run(workingDir, "view", "--json", packageName) - return jsonMapper.readTree(process.stdoutFile) + return jsonMapper.readTree(process.stdout) } /** diff --git a/analyzer/src/main/kotlin/managers/Pipenv.kt b/analyzer/src/main/kotlin/managers/Pipenv.kt index ef2abbe403dc..03a8d1646cc8 100644 --- a/analyzer/src/main/kotlin/managers/Pipenv.kt +++ b/analyzer/src/main/kotlin/managers/Pipenv.kt @@ -69,10 +69,8 @@ class Pipenv( log.info { "Generating '${requirementsFile.name}' file in '$workingDir' directory..." } - ProcessCapture(workingDir, command(), "lock", "--requirements") - .requireSuccess() - .stdoutFile - .copyTo(requirementsFile) + val requirements = ProcessCapture(workingDir, command(), "lock", "--requirements").requireSuccess().stdout + requirementsFile.writeText(requirements) return Pip(managerName, analysisRoot, analyzerConfig, repoConfig) .resolveDependencies(requirementsFile, labels) diff --git a/analyzer/src/main/kotlin/managers/Yarn.kt b/analyzer/src/main/kotlin/managers/Yarn.kt index df6550c1be02..94136bc7f1b9 100644 --- a/analyzer/src/main/kotlin/managers/Yarn.kt +++ b/analyzer/src/main/kotlin/managers/Yarn.kt @@ -69,6 +69,6 @@ class Yarn( override fun getRemotePackageDetails(workingDir: File, packageName: String): JsonNode { val process = run(workingDir, "info", "--json", packageName) - return jsonMapper.readTree(process.stdoutFile)["data"] + return jsonMapper.readTree(process.stdout)["data"] } } diff --git a/scanner/src/main/kotlin/scanners/Askalono.kt b/scanner/src/main/kotlin/scanners/Askalono.kt index 11df660835e3..5b9faaf7a0d6 100644 --- a/scanner/src/main/kotlin/scanners/Askalono.kt +++ b/scanner/src/main/kotlin/scanners/Askalono.kt @@ -114,14 +114,14 @@ class Askalono internal constructor( if (stderr.isNotBlank()) log.debug { stderr } if (isError) throw ScanException(errorMessage) - generateSummary(startTime, endTime, path, stdoutFile) + generateSummary(startTime, endTime, path, stdout) } } - private fun generateSummary(startTime: Instant, endTime: Instant, scanPath: File, resultFile: File): ScanSummary { + private fun generateSummary(startTime: Instant, endTime: Instant, scanPath: File, result: String): ScanSummary { val licenseFindings = sortedSetOf() - resultFile.readLines().forEach { line -> + result.lines().forEach { line -> val root = jsonMapper.readTree(line) root["result"]?.let { result -> val licenseFinding = LicenseFinding( diff --git a/scanner/src/main/kotlin/scanners/Licensee.kt b/scanner/src/main/kotlin/scanners/Licensee.kt index 78cc6065f631..f4ae0b518d2f 100644 --- a/scanner/src/main/kotlin/scanners/Licensee.kt +++ b/scanner/src/main/kotlin/scanners/Licensee.kt @@ -28,7 +28,7 @@ import org.ossreviewtoolkit.model.ScanSummary import org.ossreviewtoolkit.model.TextLocation import org.ossreviewtoolkit.model.config.DownloaderConfiguration import org.ossreviewtoolkit.model.config.ScannerConfiguration -import org.ossreviewtoolkit.model.readJsonFile +import org.ossreviewtoolkit.model.jsonMapper import org.ossreviewtoolkit.scanner.AbstractScannerFactory import org.ossreviewtoolkit.scanner.BuildConfig import org.ossreviewtoolkit.scanner.CommandLineScanner @@ -97,15 +97,15 @@ class Licensee internal constructor( if (stderr.isNotBlank()) log.debug { stderr } if (isError) throw ScanException(errorMessage) - generateSummary(startTime, endTime, path, stdoutFile) + generateSummary(startTime, endTime, path, stdout) } } - private fun generateSummary(startTime: Instant, endTime: Instant, scanPath: File, resultFile: File): ScanSummary { + private fun generateSummary(startTime: Instant, endTime: Instant, scanPath: File, result: String): ScanSummary { val licenseFindings = sortedSetOf() - val result = readJsonFile(resultFile) - val matchedFiles = result["matched_files"] + val json = jsonMapper.readTree(result) + val matchedFiles = json["matched_files"] matchedFiles.mapTo(licenseFindings) { val filePath = File(it["filename"].textValue()) diff --git a/utils/common/src/main/kotlin/ProcessCapture.kt b/utils/common/src/main/kotlin/ProcessCapture.kt index 88247eff5645..3dcaef7de58a 100644 --- a/utils/common/src/main/kotlin/ProcessCapture.kt +++ b/utils/common/src/main/kotlin/ProcessCapture.kt @@ -61,8 +61,8 @@ class ProcessCapture(vararg command: String, workingDir: File? = null, environme private val tempDir = createTempDirectory("$command-process").toFile().apply { deleteOnExit() } private val tempPrefix = command.first().substringAfterLast(File.separatorChar) - val stdoutFile = tempDir.resolve("$tempPrefix.stdout").apply { deleteOnExit() } - val stderrFile = tempDir.resolve("$tempPrefix.stderr").apply { deleteOnExit() } + private val stdoutFile = tempDir.resolve("$tempPrefix.stdout").apply { deleteOnExit() } + private val stderrFile = tempDir.resolve("$tempPrefix.stderr").apply { deleteOnExit() } /** * Get the standard output stream of the terminated process as a string.