Skip to content

Commit 32737a6

Browse files
committed
Unconditionally use swift-system package
1 parent 360412e commit 32737a6

16 files changed

+39
-174
lines changed

Package.resolved

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ let executableName = isXcode ? "ProcessInvocationBridge" : "swift-process-invoca
2626

2727
let package = Package(
2828
name: "swift-process-invocation",
29-
platforms: [.macOS(.v12)/* FilePath is unusable before macOS 12. */],
29+
platforms: [.macOS(.v11)],
3030
products: [
3131
.library(name: "ProcessInvocation", targets: ["ProcessInvocation"]),
3232
/* A launcher for forwarding fds when needed. */
@@ -36,6 +36,7 @@ let package = Package(
3636
var res = [Package.Dependency]()
3737
res.append(.package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.2.2"))
3838
res.append(.package(url: "https://github.com/apple/swift-log.git", from: "1.5.2"))
39+
res.append(.package(url: "https://github.com/apple/swift-system.git", from: "1.0.0")) /* We’re aware of the existence of System on macOS. After some thinking/research, we decided to agree with <https://forums.swift.org/t/50719/5>. */
3940
res.append(.package(url: "https://github.com/Frizlab/UnwrapOrThrow.git", from: "1.0.1"))
4041
res.append(.package(url: "https://github.com/xcode-actions/clt-logger.git", from: "1.0.0-beta.4"))
4142
res.append(.package(url: "https://github.com/xcode-actions/stream-reader.git", from: "3.6.0"))
@@ -54,6 +55,7 @@ let package = Package(
5455
res.append(.product(name: "SignalHandling", package: "swift-signal-handling"))
5556
res.append(.product(name: "StreamReader", package: "stream-reader"))
5657
res.append(.product(name: "UnwrapOrThrow", package: "UnwrapOrThrow"))
58+
res.append(.product(name: "SystemPackage", package: "swift-system"))
5759
res.append(.target(name: "CMacroExports"))
5860
if useXtenderZ {
5961
res.append(.product(name: "eXtenderZ-static", package: "eXtenderZ"))
@@ -73,6 +75,7 @@ let package = Package(
7375
res.append(.product(name: "CLTLogger", package: "clt-logger"))
7476
res.append(.product(name: "Logging", package: "swift-log"))
7577
res.append(.product(name: "StreamReader", package: "stream-reader"))
78+
res.append(.product(name: "SystemPackage", package: "swift-system"))
7679
res.append(.target(name: "CMacroExports"))
7780
if needsGNUSourceExports {
7881
res.append(.target(name: "CGNUSourceExports"))
@@ -86,6 +89,7 @@ let package = Package(
8689
res.append(.product(name: "CLTLogger", package: "clt-logger"))
8790
res.append(.product(name: "Logging", package: "swift-log"))
8891
res.append(.product(name: "StreamReader", package: "stream-reader"))
92+
res.append(.product(name: "SystemPackage", package: "swift-system"))
8993
if needsGNUSourceExports {
9094
res.append(.target(name: "CGNUSourceExportsForTests"))
9195
}

Sources/ManualTests/main.swift

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
import Foundation
2-
#if canImport(SystemPackage)
3-
import SystemPackage
4-
#elseif canImport(System)
5-
import System
6-
#endif
72

83
import CLTLogger
94
import Logging
105
import ProcessInvocation
116
import StreamReader
7+
import SystemPackage
128

139
/* Old remark (fixed not):
1410
* Launch the manual test like so:
@@ -37,14 +33,8 @@ let logger = Logger(label: "com.xcode-actions.manual-process-invocation-tests")
3733
//}
3834

3935
do {
40-
#if canImport(SystemPackage) || canImport(System)
4136
let fd = try! FileDescriptor.open("/dev/null", .readOnly)
4237
defer {_ = try? fd.close()}
43-
#else
44-
let fh = FileHandle(forReadingAtPath: "/dev/null")!
45-
let fd = FileDescriptor(rawValue: fh.fileDescriptor)
46-
defer {_ = try? fh.close()}
47-
#endif
4838

4939
/*let p = Process()
5040
p.executableURL = URL(fileURLWithPath: "./toto")

Sources/ProcessInvocation/ Errors.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
import Foundation
2-
#if canImport(SystemPackage)
2+
33
import SystemPackage
4-
#elseif canImport(System)
5-
import System
6-
#endif
74

85

96

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import Foundation
2+
3+
import StreamReader
4+
import SystemPackage
5+
6+
7+
8+
extension FileDescriptor : @retroactive GenericReadStream {
9+
10+
public func read(_ buffer: UnsafeMutableRawPointer, maxLength len: Int) throws -> Int {
11+
return try read(into: UnsafeMutableRawBufferPointer(start: buffer, count: len))
12+
}
13+
14+
}

Sources/ProcessInvocation/InputRedirectMode.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import Foundation
2-
#if canImport(SystemPackage)
3-
import SystemPackage
4-
#elseif canImport(System)
5-
import System
6-
#endif
72

83
import StreamReader
4+
import SystemPackage
95

106

117

Sources/ProcessInvocation/LineWithSource.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import Foundation
2-
#if canImport(SystemPackage)
3-
import SystemPackage
4-
#elseif canImport(System)
5-
import System
6-
#endif
72

3+
import SystemPackage
84
import UnwrapOrThrow
95

106

Sources/ProcessInvocation/NoSystemDummies.swift

Lines changed: 0 additions & 57 deletions
This file was deleted.

Sources/ProcessInvocation/OutputRedirectMode.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
import Foundation
2-
#if canImport(SystemPackage)
2+
33
import SystemPackage
4-
#elseif canImport(System)
5-
import System
6-
#endif
74

85

96

Sources/ProcessInvocation/ProcessInvocation+Deprecated.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import Foundation
2-
#if canImport(SystemPackage)
3-
import SystemPackage
4-
#elseif canImport(System)
5-
import System
6-
#endif
72

83
import SignalHandling
4+
import SystemPackage
95

106

117

0 commit comments

Comments
 (0)