Skip to content

Commit d007386

Browse files
committed
feat: Add mise support
1 parent 808ad84 commit d007386

File tree

3 files changed

+16
-14
lines changed

3 files changed

+16
-14
lines changed

Sources/Runner/Commands/Edit.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ func editDanger(version dangerSwiftVersion: String, logger: Logger) throws {
2525
absoluteLibPath = spmDanger.buildFolder
2626
libsImport = spmDanger.xcodeImportFlags
2727
} else {
28-
guard let libPath = Runtime.getLibDangerPath() else {
29-
let potentialFolders = Runtime.potentialLibraryFolders
28+
guard let libPath = Runtime.getLibDangerPath(forDangerSwiftVersion: dangerSwiftVersion) else {
29+
let potentialFolders = Runtime.potentialLibraryFolders(forDangerSwiftVersion: dangerSwiftVersion)
3030
logger.logError("Could not find a libDanger to link against at any of: \(potentialFolders)",
31-
"Or via Homebrew, or Marathon",
31+
"Or via Homebrew, or Marathon, or Mise",
3232
separator: "\n")
3333
exit(1)
3434
}

Sources/Runner/Commands/Runner.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ func runDanger(version dangerSwiftVersion: String, logger: Logger) throws {
6363
libArgs += ["-I", spmDanger.moduleFolder]
6464
libArgs += [spmDanger.swiftcLibImport]
6565
} else {
66-
guard let libDangerPath = Runtime.getLibDangerPath() else {
67-
let potentialFolders = Runtime.potentialLibraryFolders
66+
guard let libDangerPath = Runtime.getLibDangerPath(forDangerSwiftVersion: dangerSwiftVersion) else {
67+
let potentialFolders = Runtime.potentialLibraryFolders(forDangerSwiftVersion: dangerSwiftVersion)
6868
logger.logError("Could not find a libDanger to link against at any of: \(potentialFolders)",
6969
"Or via Homebrew, or Marathon",
7070
separator: "\n")

Sources/RunnerLib/Runtime.swift

+11-9
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,19 @@ public enum Runtime {
1616
}
1717

1818
/// Is this a dev build: e.g. running inside a cloned danger/danger-swift
19-
public static let potentialLibraryFolders = [
20-
".build/debug", // Working in Xcode / CLI
21-
".build/x86_64-unknown-linux/debug", // Danger Swift's CI
22-
".build/release", // Testing prod
23-
"/usr/local/lib/danger", // Intel Homebrew installs lib stuff to here
24-
"/opt/homebrew/lib/danger", // Apple Silicon Homebrew installs lib stuff to here
25-
]
19+
public static func potentialLibraryFolders(forDangerSwiftVersion version: String) -> [String] { [
20+
".build/debug", // Working in Xcode / CLI
21+
".build/x86_64-unknown-linux/debug", // Danger Swift's CI
22+
".build/release", // Testing prod
23+
"/usr/local/lib/danger", // Intel Homebrew installs lib stuff to here
24+
"/opt/homebrew/lib/danger", // Apple Silicon Homebrew installs lib stuff to here
25+
NSHomeDirectory() + "/.local/share/mise/installs/danger-swift/\(version)/lib/danger"
26+
]
27+
}
2628

2729
/// Finds a path to add at runtime to the compiler, which links
2830
/// to the library Danger
29-
public static func getLibDangerPath() -> String? {
31+
public static func getLibDangerPath(forDangerSwiftVersion version: String) -> String? {
3032
let fileManager = FileManager.default
3133

3234
// Was danger-swift installed via marathon?
@@ -49,7 +51,7 @@ public enum Runtime {
4951
} ?? []
5052

5153
// Check and find where we can link to libDanger from
52-
let libPaths = commandArgPath + potentialLibraryFolders + depManagerDangerLibPaths
54+
let libPaths = commandArgPath + potentialLibraryFolders(forDangerSwiftVersion: version) + depManagerDangerLibPaths
5355

5456
func isTheDangerLibPath(path: String) -> Bool {
5557
fileManager.fileExists(atPath: path + "/libDanger.dylib") || // OSX

0 commit comments

Comments
 (0)