Skip to content

Commit 77462b5

Browse files
committed
fix(crossplatfor-support)
1 parent 6699e65 commit 77462b5

File tree

2 files changed

+35
-8
lines changed

2 files changed

+35
-8
lines changed

danger-kotlin-kts/src/main/kotlin/systems/danger/kts/DangerFileScriptDefinition.kt

+18-7
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,17 @@ object DangerFileScriptDefinition : ScriptCompilationConfiguration(
6363
)
6464

6565
class DangerFileKtsConfigurator : RefineScriptCompilationConfigurationHandler {
66-
67-
private val resolver = CompoundDependenciesResolver(
68-
FileSystemDependenciesResolver(DANGER_LIBS_FLAT_DIR),
69-
FileSystemDependenciesResolver(),
66+
private val externalDependenciesResolvers = setOf(
7067
MavenDependenciesResolver()
7168
)
69+
private val resolvers = DANGER_DEFAULT_FLAT_DIRS
70+
.map { File(it) }
71+
.filter { it.exists() }
72+
.map { FileSystemDependenciesResolver(it) } +
73+
FileSystemDependenciesResolver() +
74+
externalDependenciesResolvers
75+
76+
private val resolver = CompoundDependenciesResolver(resolvers)
7277

7378
override operator fun invoke(context: ScriptConfigurationRefinementContext): ResultWithDiagnostics<ScriptCompilationConfiguration> =
7479
processAnnotations(context)
@@ -136,7 +141,13 @@ class DangerFileKtsConfigurator : RefineScriptCompilationConfigurationHandler {
136141
}
137142

138143
private companion object {
139-
const val DANGER_DEFAULT_FLAT_DIR = "/usr/local/lib/danger/libs"
140-
private val DANGER_LIBS_FLAT_DIR = File(DANGER_DEFAULT_FLAT_DIR)
144+
val DANGER_DEFAULT_FLAT_DIRS = setOf(
145+
"/usr/local", // x86 location
146+
"/opt/local", // Arm
147+
"/opt/homebrew", // Homebrew Arm
148+
"/usr", // Fallback
149+
).map {
150+
"$it/lib/danger/libs"
151+
}
141152
}
142-
}
153+
}

danger-kotlin/src/runnerMain/kotlin/systems.danger/cmd/dangerfile/DangerFile.kt

+17-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,24 @@ import systems.danger.Log
88
object DangerFile : DangerFileBridge {
99
private const val DANGERFILE_EXTENSION = ".df.kts"
1010
private const val DANGERFILE = "Dangerfile$DANGERFILE_EXTENSION"
11+
private val platformExpectedLibLocations = setOf(
12+
"/usr/local", // x86 location
13+
"/opt/local", // Arm
14+
"/opt/homebrew", // Homebrew Arm
15+
"/usr", // Fallback
16+
)
1117

1218
override fun execute(inputJson: String, outputJson: String) {
19+
val dangerKotlinJarPath = platformExpectedLibLocations
20+
.map { "$it/lib/danger/danger-kotlin.jar" }
21+
.filter { access(it, F_OK) == 0 }
22+
.also {
23+
if (it.isEmpty()) {
24+
Log.error("lib/danger/danger-kotlin.jar not found in following location ${libLocations.joinToString()}")
25+
exit(1)
26+
}
27+
}.first()
28+
1329
val dangerfile = dangerfileParameter(inputJson) ?: DANGERFILE
1430

1531
if (!dangerfile.endsWith(DANGERFILE_EXTENSION)) {
@@ -23,7 +39,7 @@ object DangerFile : DangerFileBridge {
2339
"-script-templates",
2440
"systems.danger.kts.DangerFileScript",
2541
"-cp",
26-
"/usr/local/lib/danger/danger-kotlin.jar",
42+
dangerKotlinJarPath,
2743
"-script",
2844
dangerfile,
2945
inputJson,

0 commit comments

Comments
 (0)