Skip to content

Commit

Permalink
inject exact version from main.swift
Browse files Browse the repository at this point in the history
  • Loading branch information
417-72KI committed Apr 4, 2023
1 parent 5e48ec3 commit c68e9ee
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ struct InlineDependenciesFinder {
self.config = config
}

func resolveInlineDependencies(fromPath path: String) throws -> [InlineDependency] {
func resolveInlineDependencies(fromPath path: String,
dangerSwiftVersion: String) throws -> [InlineDependency] {
let lines = try fileReader.readText(atPath: path).components(separatedBy: .newlines)

// TODO: inject from main.swift
var result: [InlineDependency] = [.dangerSwift(version: "3.15.0")]
var result: [InlineDependency] = [.dangerSwift(version: dangerSwiftVersion)]

for line in lines {
if line.hasPrefix("import ") {
Expand Down
6 changes: 5 additions & 1 deletion Sources/DangerDependenciesResolver/Script.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public struct ScriptManager {
}

private let config = Config()
private let dangerSwiftVersion: String
private let packageManager: PackageManager
private let folder: String
private let cacheFolder: String
Expand All @@ -33,8 +34,10 @@ public struct ScriptManager {
private let inlineDependenciesFinder: InlineDependenciesFinder

public init(folder: String,
dangerSwiftVersion: String,
packageManager: PackageManager,
logger: Logger) throws {
self.dangerSwiftVersion = dangerSwiftVersion
self.folder = folder
self.logger = logger
cacheFolder = try folder.createSubfolderIfNeeded(withName: "Cache")
Expand All @@ -57,7 +60,8 @@ public struct ScriptManager {
let folder = try createFolderIfNeededForScript(withIdentifier: identifier, filePath: path)
let script = Script(name: path.nameExcludingExtension, folder: folder, logger: logger)

let packages = try inlineDependenciesFinder.resolveInlineDependencies(fromPath: path)
let packages = try inlineDependenciesFinder.resolveInlineDependencies(fromPath: path,
dangerSwiftVersion: dangerSwiftVersion)
try packageManager.addPackagesIfNeeded(from: packages)

do {
Expand Down
5 changes: 3 additions & 2 deletions Sources/Runner/Commands/Edit.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import Foundation
import Logger
import RunnerLib

func editDanger(logger: Logger) throws {
func editDanger(version dangerSwiftVersion: String, logger: Logger) throws {
let fileManager = FileManager.default
let dangerfilePath: String

Expand Down Expand Up @@ -46,7 +46,8 @@ func editDanger(logger: Logger) throws {
let importedFiles = importsFinder.findImports(inString: dangerfileContent)
.map { importsFinder.resolveImportPath($0, relativeTo: dangerfilePath) }

let scriptManager = try getScriptManager(logger)
let scriptManager = try getScriptManager(forDangerSwiftVersion: dangerSwiftVersion,
logger: logger)
let script = try scriptManager.script(atPath: dangerfilePath)

try script.setupForEdit(importedFiles: importedFiles)
Expand Down
5 changes: 3 additions & 2 deletions Sources/Runner/Commands/Runner.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import Logger
import RunnerLib

// swiftlint:disable:next function_body_length
func runDanger(logger: Logger) throws {
func runDanger(version dangerSwiftVersion: String, logger: Logger) throws {
// Pull in the JSON from Danger JS
let standardInput = FileHandle.standardInput
let fileManager = FileManager.default
Expand Down Expand Up @@ -90,7 +90,8 @@ func runDanger(logger: Logger) throws {

defer { try? FileManager.default.removeItem(atPath: tempDangerfile) }

let scriptManager = try getScriptManager(logger)
let scriptManager = try getScriptManager(forDangerSwiftVersion: dangerSwiftVersion,
logger: logger)
let script = try scriptManager.script(atPath: tempDangerfile)

try script.build()
Expand Down
8 changes: 6 additions & 2 deletions Sources/Runner/MarathonScriptManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import DangerDependenciesResolver
import Foundation
import Logger

func getScriptManager(_ logger: Logger) throws -> ScriptManager {
func getScriptManager(forDangerSwiftVersion dangerSwiftVersion: String,
logger: Logger) throws -> ScriptManager {
let homeFolder: String

if #available(OSX 10.12, *) {
Expand All @@ -18,5 +19,8 @@ func getScriptManager(_ logger: Logger) throws -> ScriptManager {

let packageManager = try PackageManager(folder: packageFolder, logger: logger)

return try ScriptManager(folder: scriptFolder, packageManager: packageManager, logger: logger)
return try ScriptManager(folder: scriptFolder,
dangerSwiftVersion: dangerSwiftVersion,
packageManager: packageManager,
logger: logger)
}
6 changes: 3 additions & 3 deletions Sources/Runner/main.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ private func runCommand(_ command: DangerCommand, logger: Logger) throws {
checkForUpdate(logger: logger)
exit(exitCode)
case .edit:
try editDanger(logger: logger)
try editDanger(version: DangerVersion, logger: logger)
case .runner:
try runDanger(logger: logger)
try runDanger(version: DangerVersion, logger: logger)
}
}

Expand Down Expand Up @@ -51,7 +51,7 @@ do {
fatalError("Danger Swift does not support this argument, it only handles ci, local, pr & edit'")
}
} else {
try runDanger(logger: logger)
try runDanger(version: DangerVersion, logger: logger)
}
} catch {
logger.logError(error)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,11 @@ final class InlineDependenciesFinderTests: XCTestCase {
let dependenciesFinder = InlineDependenciesFinder(fileReader: fileReader,
config: ScriptManager.Config(prefix: "package: ", file: "", major: "~> "))

let result = try dependenciesFinder.resolveInlineDependencies(fromPath: "path")
let result = try dependenciesFinder.resolveInlineDependencies(fromPath: "path",
dangerSwiftVersion: "3.0.0")

XCTAssertEqual(result, [
.dangerSwift(version: "3.15.0"),
.dangerSwift(version: "3.0.0"),
InlineDependenciesFinder.InlineDependency(url: URL(string: "http://danger.systems")!, major: nil),
InlineDependenciesFinder.InlineDependency(url: URL(string: "http://danger.systems/swift")!, major: 2),
])
Expand All @@ -26,7 +27,7 @@ final class InlineDependenciesFinderTests: XCTestCase {
let dependenciesFinder = InlineDependenciesFinder(fileReader: fileReader,
config: ScriptManager.Config(prefix: "package: ", file: "", major: "~> "))

XCTAssertThrowsError(try dependenciesFinder.resolveInlineDependencies(fromPath: "path"))
XCTAssertThrowsError(try dependenciesFinder.resolveInlineDependencies(fromPath: "path", dangerSwiftVersion: "3.14.0"))
}

func testReturnsAnEmptyDependenciesListWhenDependenciesDoNotHavePackagePrefix() throws {
Expand All @@ -36,9 +37,9 @@ final class InlineDependenciesFinderTests: XCTestCase {
let dependenciesFinder = InlineDependenciesFinder(fileReader: fileReader,
config: ScriptManager.Config(prefix: "package: ", file: "", major: "~> "))

let result = try dependenciesFinder.resolveInlineDependencies(fromPath: "path")
let result = try dependenciesFinder.resolveInlineDependencies(fromPath: "path", dangerSwiftVersion: "3.1.4")

XCTAssertEqual(result, [.dangerSwift(version: "3.15.0")])
XCTAssertEqual(result, [.dangerSwift(version: "3.1.4")])
}

private var script: String {
Expand Down

0 comments on commit c68e9ee

Please sign in to comment.