Skip to content

Commit b41494a

Browse files
authored
Merge pull request #634 from 417-72KI/fix-deprecated
Replace deprecated properties and functions in `Process`
2 parents 808ad84 + 4f78b76 commit b41494a

File tree

3 files changed

+28
-16
lines changed

3 files changed

+28
-16
lines changed

Sources/DangerShellExecutor/ShellExecutor.swift

+16-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import Foundation
2+
#if canImport(FoundationNetworking)
3+
import FoundationNetworking
4+
#endif
25

36
public enum SpawnError: Error {
47
case commandFailed(command: String, exitCode: Int32, stdout: String, stderr: String)
@@ -62,16 +65,19 @@ public struct ShellExecutor: ShellExecuting {
6265
with: arguments,
6366
environmentVariables: environmentVariables,
6467
outputFile: outputFile)
68+
do {
69+
let pipe = Pipe()
70+
task.standardOutput = pipe
71+
try task.run()
6572

66-
let pipe = Pipe()
67-
task.standardOutput = pipe
68-
task.launch()
73+
let data = pipe.fileHandleForReading.readDataToEndOfFile()
6974

70-
let data = pipe.fileHandleForReading.readDataToEndOfFile()
75+
task.waitUntilExit()
7176

72-
task.waitUntilExit()
73-
74-
return String(data: data, encoding: .utf8)!.trimmingCharacters(in: .whitespacesAndNewlines)
77+
return String(data: data, encoding: .utf8)!.trimmingCharacters(in: .whitespacesAndNewlines)
78+
} catch {
79+
return error.localizedDescription
80+
}
7581
}
7682

7783
// Similar to above, but can throw, and throws with most of
@@ -90,7 +96,7 @@ public struct ShellExecutor: ShellExecuting {
9096
task.standardOutput = stdout
9197
let stderr = Pipe()
9298
task.standardError = stderr
93-
task.launch()
99+
try task.run()
94100

95101
// Pull out the STDOUT as a string because we'll need that regardless
96102
let stdoutData = stdout.fileHandleForReading.readDataToEndOfFile()
@@ -131,10 +137,10 @@ public struct ShellExecutor: ShellExecuting {
131137
let script = "\(command) \(arguments.joined(separator: " "))" + scriptOutputFile
132138

133139
let task = Process()
134-
task.launchPath = "/bin/sh"
140+
task.executableURL = URL(fileURLWithPath: "/bin/sh")
135141
task.arguments = ["-c", script]
136142
task.environment = mergeEnvs(localEnv: environmentVariables, processEnv: ProcessInfo.processInfo.environment)
137-
task.currentDirectoryPath = FileManager.default.currentDirectoryPath
143+
task.currentDirectoryURL = URL(fileURLWithPath: FileManager.default.currentDirectoryPath)
138144
return task
139145
}
140146

Sources/Runner/Commands/RunDangerJS.swift

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import Foundation
22
import Logger
33
import RunnerLib
4+
#if canImport(FoundationNetworking)
5+
import FoundationNetworking
6+
#endif
47

58
func runDangerJSCommandToRunDangerSwift(_ command: DangerCommand, logger: Logger) throws -> Int32 {
69
guard let dangerJS = try? getDangerCommandPath(logger: logger) else {
@@ -22,7 +25,7 @@ func runDangerJSCommandToRunDangerSwift(_ command: DangerCommand, logger: Logger
2225

2326
let proc = Process()
2427
proc.environment = ProcessInfo.processInfo.environment
25-
proc.launchPath = dangerJS
28+
proc.executableURL = URL(fileURLWithPath: dangerJS)
2629

2730
let dangerOptionsIndexes = DangerSwiftOption.allCases
2831
.compactMap { option -> (DangerSwiftOption, Int)? in
@@ -62,8 +65,8 @@ func runDangerJSCommandToRunDangerSwift(_ command: DangerCommand, logger: Logger
6265
proc.standardOutput = standardOutput
6366
proc.standardError = standardOutput
6467

65-
logger.debug("Running: \(proc.launchPath!) \(proc.arguments!.joined(separator: " ")) ")
66-
proc.launch()
68+
logger.debug("Running: \(proc.executableURL!) \(proc.arguments!.joined(separator: " ")) ")
69+
try proc.run()
6770
proc.waitUntilExit()
6871

6972
return proc.terminationStatus

Sources/Runner/Commands/Runner.swift

+6-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import DangerShellExecutor
33
import Foundation
44
import Logger
55
import RunnerLib
6+
#if canImport(FoundationNetworking)
7+
import FoundationNetworking
8+
#endif
69

710
// swiftlint:disable:next function_body_length
811
func runDanger(version dangerSwiftVersion: String, logger: Logger) throws {
@@ -152,19 +155,19 @@ func runDanger(version dangerSwiftVersion: String, logger: Logger) throws {
152155

153156
// Create a process to eval the Swift file
154157
let proc = Process()
155-
proc.launchPath = swiftC
158+
proc.executableURL = URL(fileURLWithPath: swiftC)
156159
proc.arguments = args
157160
let standardOutput = FileHandle.standardOutput
158161
if let cwdOptionIndex = CommandLine.arguments.firstIndex(of: DangeSwiftRunnerOption.cwd.rawValue),
159162
(cwdOptionIndex + 1) < CommandLine.arguments.count,
160163
let directoryURL = URL(string: CommandLine.arguments[cwdOptionIndex + 1])
161164
{
162-
proc.currentDirectoryPath = directoryURL.absoluteString
165+
proc.currentDirectoryURL = directoryURL
163166
}
164167
proc.standardOutput = standardOutput
165168
proc.standardError = standardOutput
166169

167-
proc.launch()
170+
try proc.run()
168171
proc.waitUntilExit()
169172

170173
logger.debug("Completed evaluation")

0 commit comments

Comments
 (0)