@@ -18,8 +18,8 @@ struct PackageBuilder: Sendable {
1818 installLocation: String ,
1919 outputPlist: URL
2020 ) async throws {
21- let arguments = [
22- " /usr/bin/pkgbuild " ,
21+ let command : FilePath = " /usr/bin/pkgbuild "
22+ let arguments : Arguments = [
2323 " --analyze " ,
2424 " --root " , payloadDir. path,
2525 " --identifier " , identifier,
@@ -28,11 +28,11 @@ struct PackageBuilder: Sendable {
2828 outputPlist. path
2929 ]
3030
31- logger. log ( " Executing: \( arguments . joined ( separator : " " ) ) " , level: 3 )
31+ logger. log ( " Executing: \( command ) \( arguments ) " , level: 3 )
3232
3333 let result = try await Subprocess . run (
34- . path( FilePath ( arguments [ 0 ] ) ) ,
35- arguments: Arguments ( Array ( arguments. dropFirst ( ) ) ) ,
34+ . path( command ) ,
35+ arguments: arguments,
3636 output: . string( limit: . max) ,
3737 error: . string( limit: . max)
3838 )
@@ -78,11 +78,12 @@ struct PackageBuilder: Sendable {
7878
7979 // Remove quarantine extended attributes from payload
8080 logger. log ( " Removing quarantine attributes from payload " , level: 1 )
81- let xattrArgs = [ " /usr/bin/xattr " , " -dr " , " com.apple.quarantine " , payloadDir. path]
82- logger. log ( " Executing: \( xattrArgs. joined ( separator: " " ) ) " , level: 3 )
81+ let xattrCommand : FilePath = " /usr/bin/xattr "
82+ let xattrArgs : Arguments = [ " -dr " , " com.apple.quarantine " , payloadDir. path]
83+ logger. log ( " Executing: \( xattrCommand) \( xattrArgs) " , level: 3 )
8384 _ = try await Subprocess . run (
84- . path( FilePath ( xattrArgs [ 0 ] ) ) ,
85- arguments: Arguments ( Array ( xattrArgs. dropFirst ( ) ) ) ,
85+ . path( xattrCommand ) ,
86+ arguments: xattrArgs,
8687 output: . discarded,
8788 error: . discarded
8889 )
@@ -96,8 +97,8 @@ struct PackageBuilder: Sendable {
9697 }
9798
9899 // Build the pkgbuild command
99- var arguments = [
100- " /usr/bin/pkgbuild " ,
100+ let pkgbuildCommand : FilePath = " /usr/bin/pkgbuild "
101+ var pkgbuildArgs : [ String ] = [
101102 " --root " , payloadDir. path,
102103 " --component-plist " , componentPlist. path,
103104 " --identifier " , identifier,
@@ -106,44 +107,45 @@ struct PackageBuilder: Sendable {
106107 ]
107108
108109 if let scriptsDir = scripts {
109- arguments += [ " --scripts " , scriptsDir. path]
110+ pkgbuildArgs += [ " --scripts " , scriptsDir. path]
110111 logger. log ( " Scripts path: \( scriptsDir. path) " , level: 1 )
111112 }
112113
113114 if let ownership = ownership {
114- arguments += [ " --ownership " , ownership. rawValue]
115+ pkgbuildArgs += [ " --ownership " , ownership. rawValue]
115116 }
116117
117- arguments += [ " --compression " , compression. rawValue]
118+ pkgbuildArgs += [ " --compression " , compression. rawValue]
118119
119120 if let minOSVersion = minOSVersion {
120- arguments += [ " --min-os-version " , minOSVersion]
121+ pkgbuildArgs += [ " --min-os-version " , minOSVersion]
121122 logger. log ( " Minimum OS version: \( minOSVersion) " , level: 1 )
122123 }
123124
124125 // Only sign with pkgbuild for component packages
125126 if packageType == . component {
126127 if let sign = sign {
127- arguments += [ " --sign " , sign]
128+ pkgbuildArgs += [ " --sign " , sign]
128129 }
129130
130131 if let keychain = keychain {
131- arguments += [ " --keychain " , keychain]
132+ pkgbuildArgs += [ " --keychain " , keychain]
132133 }
133134
134135 if let cert = cert {
135- arguments += [ " --cert " , cert]
136+ pkgbuildArgs += [ " --cert " , cert]
136137 }
137138 }
138139
139- arguments . append ( pkgbuildOutput)
140+ pkgbuildArgs . append ( pkgbuildOutput)
140141
141142 logger. log ( " Building component package: \( pkgbuildOutput) " , level: 1 )
142- logger. log ( " Executing: \( arguments. joined ( separator: " " ) ) " , level: 3 )
143+ let arguments = Arguments ( pkgbuildArgs)
144+ logger. log ( " Executing: \( pkgbuildCommand) \( arguments) " , level: 3 )
143145
144146 let result = try await Subprocess . run (
145- . path( FilePath ( arguments [ 0 ] ) ) ,
146- arguments: Arguments ( Array ( arguments. dropFirst ( ) ) ) ,
147+ . path( pkgbuildCommand ) ,
148+ arguments: arguments,
147149 output: . string( limit: . max) ,
148150 error: . string( limit: . max)
149151 )
@@ -176,33 +178,34 @@ struct PackageBuilder: Sendable {
176178 keychain: String ? ,
177179 cert: String ?
178180 ) async throws {
179- var arguments = [
180- " /usr/bin/productbuild " ,
181+ let command : FilePath = " /usr/bin/productbuild "
182+ var productbuildArgs : [ String ] = [
181183 " --package " , componentPackage,
182184 " --identifier " , identifier,
183185 " --version " , version
184186 ]
185187
186188 if let sign = sign {
187- arguments += [ " --sign " , sign]
189+ productbuildArgs += [ " --sign " , sign]
188190 }
189191
190192 if let keychain = keychain {
191- arguments += [ " --keychain " , keychain]
193+ productbuildArgs += [ " --keychain " , keychain]
192194 }
193195
194196 if let cert = cert {
195- arguments += [ " --cert " , cert]
197+ productbuildArgs += [ " --cert " , cert]
196198 }
197199
198- arguments . append ( outputPath)
200+ productbuildArgs . append ( outputPath)
199201
200202 logger. log ( " Building distribution package: \( outputPath) " , level: 1 )
201- logger. log ( " Executing: \( arguments. joined ( separator: " " ) ) " , level: 3 )
203+ let arguments = Arguments ( productbuildArgs)
204+ logger. log ( " Executing: \( command) \( arguments) " , level: 3 )
202205
203206 let result = try await Subprocess . run (
204- . path( FilePath ( arguments [ 0 ] ) ) ,
205- arguments: Arguments ( Array ( arguments. dropFirst ( ) ) ) ,
207+ . path( command ) ,
208+ arguments: arguments,
206209 output: . string( limit: . max) ,
207210 error: . string( limit: . max)
208211 )
0 commit comments