Skip to content

Commit

Permalink
refactor(yarn2): Port getYarnExecutable() to KxS
Browse files Browse the repository at this point in the history
Signed-off-by: Frank Viernau <frank_viernau@epam.com>
  • Loading branch information
fviernau authored and sschuberth committed Sep 12, 2024
1 parent da5c922 commit c137075
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
1 change: 1 addition & 0 deletions plugins/package-managers/node/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ dependencies {
implementation(libs.kotlinx.coroutines)
implementation(libs.kotlinx.serialization.core)
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.serialization.yaml)

funTestImplementation(testFixtures(projects.analyzer))

Expand Down
14 changes: 8 additions & 6 deletions plugins/package-managers/node/src/main/kotlin/yarn2/Yarn2.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@

package org.ossreviewtoolkit.plugins.packagemanagers.node.yarn2

import com.charleskorn.kaml.Yaml
import com.charleskorn.kaml.YamlScalar
import com.charleskorn.kaml.yamlMap

import java.io.File

import kotlinx.coroutines.Dispatchers
Expand Down Expand Up @@ -48,7 +52,6 @@ import org.ossreviewtoolkit.model.config.RepositoryConfiguration
import org.ossreviewtoolkit.model.createAndLogIssue
import org.ossreviewtoolkit.model.utils.DependencyGraphBuilder
import org.ossreviewtoolkit.model.utils.DependencyHandler
import org.ossreviewtoolkit.model.yamlMapper
import org.ossreviewtoolkit.plugins.packagemanagers.node.PackageJson
import org.ossreviewtoolkit.plugins.packagemanagers.node.parsePackageJson
import org.ossreviewtoolkit.plugins.packagemanagers.node.parsePackageJsons
Expand All @@ -63,7 +66,6 @@ import org.ossreviewtoolkit.plugins.packagemanagers.node.yarn2.Yarn2.Companion.Y
import org.ossreviewtoolkit.plugins.packagemanagers.node.yarn2.Yarn2.Companion.YARN_PATH_PROPERTY_NAME
import org.ossreviewtoolkit.utils.common.CommandLineTool
import org.ossreviewtoolkit.utils.common.Os
import org.ossreviewtoolkit.utils.common.textValueOrEmpty
import org.ossreviewtoolkit.utils.ort.runBlocking
import org.ossreviewtoolkit.utils.ort.showStackTrace

Expand Down Expand Up @@ -739,10 +741,10 @@ private fun PackageJson.getScopeDependencies(type: YarnDependencyType) =

private fun getYarnExecutable(workingDir: File): File {
val yarnrcFile = workingDir.resolve(YARN2_RESOURCE_FILE)
val yarnConfig = yamlMapper.readTree(yarnrcFile)
val yarnPath = requireNotNull(yarnConfig[YARN_PATH_PROPERTY_NAME].textValueOrEmpty().ifBlank { null }) {
"No Yarn 2+ executable could be found in '$YARN2_RESOURCE_FILE'."
}
val yarnConfig = Yaml.default.parseToYamlNode(yarnrcFile.readText()).yamlMap
val yarnPath = yarnConfig.get<YamlScalar>(YARN_PATH_PROPERTY_NAME)?.content

require(!yarnPath.isNullOrEmpty()) { "No Yarn 2+ executable could be found in '$YARN2_RESOURCE_FILE'." }

return workingDir.resolve(yarnPath)
}

0 comments on commit c137075

Please sign in to comment.