Skip to content

Commit bfa7e23

Browse files
committed
HowToFixTextProvider: Pass the OrtResult to the Kotlin script
In order to allow the processing of that OrtResult. Signed-off-by: Frank Viernau <[email protected]>
1 parent d22f999 commit bfa7e23

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

cli/src/funTest/kotlin/ExamplesTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ class ExamplesTest : StringSpec() {
124124

125125
"how-to-fix-text-provider.kts provides the expected how-to-fix text" {
126126
val script = takeExampleFile("how-to-fix-text-provider.kts").readText()
127-
val howToFixTextProvider = HowToFixTextProvider.fromKotlinScript(script)
127+
val howToFixTextProvider = HowToFixTextProvider.fromKotlinScript(script, OrtResult.EMPTY)
128128
val issue = OrtIssue(
129129
message = "ERROR: Timeout after 360 seconds while scanning file 'src/res/data.json'.",
130130
source = "ScanCode",

cli/src/main/kotlin/commands/ReporterCommand.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ class ReporterCommand : CliktCommand(
194194
val licenseConfiguration = licenseConfigurationFile?.readValue<LicenseConfiguration>().orEmpty()
195195

196196
val howToFixTextProvider =
197-
howToFixTextProviderScript?.let { HowToFixTextProvider.fromKotlinScript(it.readText()) }
197+
howToFixTextProviderScript?.let { HowToFixTextProvider.fromKotlinScript(it.readText(), ortResult) }
198198
?: HowToFixTextProvider.NONE
199199

200200
outputDir.safeMkdirs()

reporter/src/main/kotlin/HowToFixTextProvider.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
package org.ossreviewtoolkit.reporter
2121

2222
import org.ossreviewtoolkit.model.OrtIssue
23+
import org.ossreviewtoolkit.model.OrtResult
2324
import org.ossreviewtoolkit.utils.ScriptRunner
2425

2526
/**
@@ -37,24 +38,30 @@ interface HowToFixTextProvider {
3738
/**
3839
* Return the [HowToFixTextProvider] which in-turn has to be returned by the given [script].
3940
*/
40-
fun fromKotlinScript(script: String): HowToFixTextProvider = HowToFixScriptRunner().run(script)
41+
fun fromKotlinScript(script: String, ortResult: OrtResult): HowToFixTextProvider =
42+
HowToFixScriptRunner(ortResult).run(script)
4143
}
44+
4245
/**
4346
* Return a Markdown text describing how to fix the given [issue]. Non-null return values override the default
4447
* how-to-fix texts, while a null value keeps the default.
4548
*/
4649
fun getHowToFixText(issue: OrtIssue): String?
4750
}
4851

49-
private class HowToFixScriptRunner : ScriptRunner() {
52+
private class HowToFixScriptRunner(ortResult: OrtResult) : ScriptRunner() {
5053
override val preface = """
5154
import org.ossreviewtoolkit.model.*
5255
import org.ossreviewtoolkit.reporter.HowToFixTextProvider
53-
56+
5457
""".trimIndent()
5558

5659
override val postface = """
5760
""".trimIndent()
5861

62+
init {
63+
engine.put("ortResult", ortResult)
64+
}
65+
5966
override fun run(script: String): HowToFixTextProvider = super.run(script) as HowToFixTextProvider
6067
}

0 commit comments

Comments
 (0)