File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ public struct BetaGroupProcessor: ResourceProcessor {
1717
1818 var path : ResourcePath
1919
20+ @discardableResult
2021 func write( _ betaGroup: BetaGroup ) throws -> File {
2122 try writeFile ( betaGroup)
2223 }
@@ -28,14 +29,26 @@ public struct BetaGroupProcessor: ResourceProcessor {
2829 public func write( groupsWithTesters: [ ( betaGroup: BetaGroup , testers: [ BetaTester ] ) ] ) throws {
2930 deleteFile ( )
3031
31- try groupsWithTesters. map { try write ( $0. betaGroup) }
32+ let betagroups = try groupsWithTesters
33+ . map { try write ( betaTesters: $0. testers, into: $0. betaGroup) }
34+
35+ try betagroups. forEach { try write ( $0) }
36+ }
37+
38+ private func write( betaTesters: [ BetaTester ] , into betaGroup: BetaGroup ) throws -> BetaGroup {
39+ let testerProcessor = BetaTesterProcessor ( folder: try getFolder ( ) )
40+
41+ var group = betaGroup
42+ group. testers = try testerProcessor. write ( group: group, testers: betaTesters)
43+
44+ return group
3245 }
3346
3447}
3548
3649extension BetaGroup : FileProvider {
3750 var fileName : String {
38- " \( app. id ) _ \( groupName) .yml "
51+ " \( app. bundleId ?? " " ) _ \( groupName) .yml "
3952 }
4053
4154 func fileContent( ) throws -> FileContent {
Original file line number Diff line number Diff line change @@ -33,23 +33,37 @@ protocol PathProvider {
3333 var path : ResourcePath { get }
3434}
3535
36+ extension PathProvider {
37+ func getFolder( ) throws -> Folder {
38+ var folder : Folder
39+ switch path {
40+ case . file( let path) :
41+ let standardizedPath = path as NSString
42+ folder = try Folder ( path: " " ) . createSubfolderIfNeeded ( at: standardizedPath. deletingLastPathComponent)
43+ case . folder( let folderPath) :
44+ folder = try Folder ( path: " " ) . createSubfolderIfNeeded ( at: folderPath)
45+ }
46+
47+ return folder
48+ }
49+ }
50+
3651extension ResourceWriter {
3752
3853 func writeFile( _ resource: FileProvider ) throws -> File {
3954 var file : File
40- var folder : Folder
4155 var fileName : String
4256
4357 switch path {
4458 case . file( let path) :
4559 let standardizedPath = path as NSString
46- folder = try Folder ( path: " " ) . createSubfolderIfNeeded ( at: standardizedPath. deletingLastPathComponent)
4760 fileName = standardizedPath. lastPathComponent
48- case . folder( let folderPath ) :
61+ case . folder( _ ) :
4962 fileName = resource. fileName
50- folder = try Folder ( path: " " ) . createSubfolderIfNeeded ( at: folderPath)
5163 }
5264
65+ let folder : Folder = try getFolder ( )
66+
5367 switch try resource. fileContent ( ) {
5468 case . data( let data) :
5569 file = try folder. createFileIfNeeded ( withName: fileName, contents: data)
@@ -77,7 +91,7 @@ extension ResourceWriter {
7791 . files. forEach { try $0. delete ( ) }
7892 }
7993 } catch {
80- print ( " \( error) " )
94+ // Skip delete failed error, if folder is missing.
8195 }
8296 }
8397}
You can’t perform that action at this time.
0 commit comments