@@ -134,12 +134,11 @@ public struct SwiftPackageCollectionsTool: ParsableCommand {
134
134
}
135
135
136
136
let source = PackageCollectionsModel . CollectionSource ( type: . json, url: collectionUrl)
137
- let collection = try with { collections in
138
- return try tsc_await { collections. getCollection ( source, callback: $0) }
137
+ try with { collections in
138
+ let collection = try tsc_await { collections. getCollection ( source, callback: $0) }
139
+ _ = try tsc_await { collections. removeCollection ( source, callback: $0) }
140
+ print ( " Removed \" \( collection. name) \" from your package collections. " )
139
141
}
140
-
141
- _ = try with { collections in try tsc_await { collections. removeCollection ( source, callback: $0) } }
142
- print ( " Removed \" \( collection. name) \" from your package collections. " )
143
142
}
144
143
}
145
144
@@ -163,31 +162,29 @@ public struct SwiftPackageCollectionsTool: ParsableCommand {
163
162
var searchQuery : String
164
163
165
164
mutating func run( ) throws {
166
- switch searchMethod {
167
- case . keywords :
168
- let results = try with { collections in
169
- return try tsc_await { collections. findPackages ( searchQuery, collections: nil , callback: $0) }
170
- }
171
-
172
- if jsonOptions . json {
173
- try JSONEncoder . makeWithDefaults ( ) . print ( results . items )
174
- } else {
175
- results . items . forEach {
176
- print ( " \( $0 . package . repository . url ) : \( $0 . package . summary ?? " " ) " )
165
+ try with { collections in
166
+ switch searchMethod {
167
+ case . keywords :
168
+ let results = try tsc_await { collections. findPackages ( searchQuery, collections: nil , callback: $0) }
169
+
170
+ if jsonOptions . json {
171
+ try JSONEncoder . makeWithDefaults ( ) . print ( results . items )
172
+ } else {
173
+ results . items . forEach {
174
+ print ( " \( $0 . package . repository . url ) : \( $0 . package . summary ?? " " ) " )
175
+ }
177
176
}
178
- }
179
177
180
- case . module:
181
- let results = try with { collections in
182
- return try tsc_await { collections. findTargets ( searchQuery, searchType: . exactMatch, collections: nil , callback: $0) }
183
- }
178
+ case . module:
179
+ let results = try tsc_await { collections. findTargets ( searchQuery, searchType: . exactMatch, collections: nil , callback: $0) }
184
180
185
- let packages = Set ( results. items. flatMap { $0. packages } )
186
- if jsonOptions. json {
187
- try JSONEncoder . makeWithDefaults ( ) . print ( packages)
188
- } else {
189
- packages. forEach {
190
- print ( " \( $0. repository. url) : \( $0. summary ?? " " ) " )
181
+ let packages = Set ( results. items. flatMap { $0. packages } )
182
+ if jsonOptions. json {
183
+ try JSONEncoder . makeWithDefaults ( ) . print ( packages)
184
+ } else {
185
+ packages. forEach {
186
+ print ( " \( $0. repository. url) : \( $0. summary ?? " " ) " )
187
+ }
191
188
}
192
189
}
193
190
}
@@ -229,71 +226,69 @@ public struct SwiftPackageCollectionsTool: ParsableCommand {
229
226
}
230
227
231
228
mutating func run( ) throws {
232
- let identity = PackageIdentity ( url: packageUrl)
233
- let reference = PackageReference ( identity: identity, path: packageUrl)
234
-
235
- do { // assume URL is for a package
236
- let result = try with { collections in
237
- return try tsc_await { collections. getPackageMetadata ( reference, callback: $0) }
238
- }
229
+ try with { collections in
230
+ let identity = PackageIdentity ( url: packageUrl)
231
+ let reference = PackageReference ( identity: identity, path: packageUrl)
239
232
240
- if let versionString = version {
241
- guard let version = TSCUtility . Version ( string: versionString) , let result = result. package . versions. first ( where: { $0. version == version } ) , let printedResult = printVersion ( result) else {
242
- throw CollectionsError . invalidVersionString ( versionString)
243
- }
233
+ do { // assume URL is for a package
234
+ let result = try tsc_await { collections. getPackageMetadata ( reference, callback: $0) }
244
235
245
- if jsonOptions. json {
246
- try JSONEncoder . makeWithDefaults ( ) . print ( result)
236
+ if let versionString = version {
237
+ guard let version = TSCUtility . Version ( string: versionString) , let result = result. package . versions. first ( where: { $0. version == version } ) , let printedResult = printVersion ( result) else {
238
+ throw CollectionsError . invalidVersionString ( versionString)
239
+ }
240
+
241
+ if jsonOptions. json {
242
+ try JSONEncoder . makeWithDefaults ( ) . print ( result)
243
+ } else {
244
+ print ( " \( indent ( ) ) Version: \( printedResult) " )
245
+ }
247
246
} else {
248
- print ( " \( indent ( ) ) Version: \( printedResult) " )
247
+ let description = optionalRow ( " Description " , result. package . summary)
248
+ let versions = result. package . versions. map { " \( $0. version) " } . joined ( separator: " , " )
249
+ let watchers = optionalRow ( " Watchers " , result. package . watchersCount? . description)
250
+ let readme = optionalRow ( " Readme " , result. package . readmeURL? . absoluteString)
251
+ let authors = optionalRow ( " Authors " , result. package . authors? . map { $0. username } . joined ( separator: " , " ) )
252
+ let latestVersion = optionalRow ( " \( String ( repeating: " - " , count: 60 ) ) \n \( indent ( ) ) Latest Version " , printVersion ( result. package . latestVersion) )
253
+
254
+ if jsonOptions. json {
255
+ try JSONEncoder . makeWithDefaults ( ) . print ( result. package )
256
+ } else {
257
+ print ( """
258
+ \( description)
259
+ Available Versions: \( versions) \( watchers) \( readme) \( authors) \( latestVersion)
260
+ """ )
261
+ }
249
262
}
250
- } else {
251
- let description = optionalRow ( " Description " , result. package . summary)
252
- let versions = result. package . versions. map { " \( $0. version) " } . joined ( separator: " , " )
253
- let watchers = optionalRow ( " Watchers " , result. package . watchersCount? . description)
254
- let readme = optionalRow ( " Readme " , result. package . readmeURL? . absoluteString)
255
- let authors = optionalRow ( " Authors " , result. package . authors? . map { $0. username } . joined ( separator: " , " ) )
256
- let latestVersion = optionalRow ( " \( String ( repeating: " - " , count: 60 ) ) \n \( indent ( ) ) Latest Version " , printVersion ( result. package . latestVersion) )
257
-
263
+ } catch { // assume URL is for a collection
264
+ // If a version argument was given, we do not perform the fallback.
265
+ if version != nil {
266
+ throw error
267
+ }
268
+
269
+ guard let collectionUrl = URL ( string: packageUrl) else {
270
+ throw CollectionsError . invalidArgument ( " collectionUrl " )
271
+ }
272
+
273
+ let source = PackageCollectionsModel . CollectionSource ( type: . json, url: collectionUrl)
274
+ let collection = try tsc_await { collections. getCollection ( source, callback: $0) }
275
+
276
+ let description = optionalRow ( " Description " , collection. overview)
277
+ let keywords = optionalRow ( " Keywords " , collection. keywords? . joined ( separator: " , " ) )
278
+ let createdAt = optionalRow ( " Created At " , DateFormatter ( ) . string ( from: collection. createdAt) )
279
+ let packages = collection. packages. map { " \( $0. repository. url) " } . joined ( separator: " \n \( indent ( levels: 2 ) ) " )
280
+
258
281
if jsonOptions. json {
259
- try JSONEncoder . makeWithDefaults ( ) . print ( result . package )
282
+ try JSONEncoder . makeWithDefaults ( ) . print ( collection )
260
283
} else {
261
284
print ( """
262
- \( description)
263
- Available Versions: \( versions) \( watchers) \( readme) \( authors) \( latestVersion)
264
- """ )
285
+ Name: \( collection. name)
286
+ Source: \( collection. source. url) \( description) \( keywords) \( createdAt)
287
+ Packages:
288
+ \( packages)
289
+ """ )
265
290
}
266
291
}
267
- } catch { // assume URL is for a collection
268
- // If a version argument was given, we do not perform the fallback.
269
- if version != nil {
270
- throw error
271
- }
272
-
273
- guard let collectionUrl = URL ( string: packageUrl) else {
274
- throw CollectionsError . invalidArgument ( " collectionUrl " )
275
- }
276
-
277
- let source = PackageCollectionsModel . CollectionSource ( type: . json, url: collectionUrl)
278
- let collection = try with { collections in
279
- try tsc_await { collections. getCollection ( source, callback: $0) }
280
- }
281
-
282
- let description = optionalRow ( " Description " , collection. overview)
283
- let keywords = optionalRow ( " Keywords " , collection. keywords? . joined ( separator: " , " ) )
284
- let createdAt = optionalRow ( " Created At " , DateFormatter ( ) . string ( from: collection. createdAt) )
285
- let packages = collection. packages. map { " \( $0. repository. url) " } . joined ( separator: " \n \( indent ( levels: 2 ) ) " )
286
-
287
- if jsonOptions. json {
288
- try JSONEncoder . makeWithDefaults ( ) . print ( collection)
289
- } else {
290
- print ( """
291
- Name: \( collection. name)
292
- Source: \( collection. source. url) \( description) \( keywords) \( createdAt)
293
- Packages:
294
- \( packages)
295
- """ )
296
- }
297
292
}
298
293
}
299
294
}
0 commit comments