|
5 | 5 |
|
6 | 6 | import Foundation |
7 | 7 |
|
| 8 | +/// Map from scheme names to framework names. |
| 9 | +/// Hopefully can avoid hard-coding this in the future |
| 10 | +let schemes = [ |
| 11 | + "FirebaseDatabaseUI", |
| 12 | + "FirebaseAuthUI", |
| 13 | + "FirebaseFacebookAuthUI", |
| 14 | + "FirebaseGoogleAuthUI", |
| 15 | + "FirebaseTwitterAuthUI", |
| 16 | +] |
| 17 | + |
| 18 | +let staticLibs = [ |
| 19 | + "Database": "FirebaseDatabaseUI", |
| 20 | + "Auth" : "FirebaseAuthUI", |
| 21 | + "Facebook": "FirebaseFacebookAuthUI", |
| 22 | + "Google" : "FirebaseGoogleAuthUI", |
| 23 | + "Twitter" : "FirebaseTwitterAuthUI", |
| 24 | +] |
| 25 | + |
8 | 26 | // TODO: Use NSFileManager instead of all these awful |
9 | 27 | // manual path appendings and mkdir/mv/cp |
10 | 28 |
|
11 | 29 | let DerivedDataDir = "artifacts/" |
12 | | -let BuiltProductsDir = DerivedDataDir + "FirebaseUIFrameworks/" |
| 30 | +let BuiltProductsDir = "FirebaseUIFrameworks/" |
13 | 31 |
|
14 | 32 | // TODO: DRY out these NSTask functions |
15 | 33 |
|
@@ -93,22 +111,6 @@ struct Build { |
93 | 111 |
|
94 | 112 | let sdks = ["iphoneos", "iphonesimulator"] |
95 | 113 |
|
96 | | -/// Map from scheme names to framework names. |
97 | | -/// Hopefully can avoid hard-coding this in the future |
98 | | -let schemes = [ |
99 | | - "FirebaseDatabaseUI", |
100 | | - "FirebaseAuthUI", |
101 | | - "FirebaseFacebookAuthUI", |
102 | | - "FirebaseGoogleAuthUI", |
103 | | -] |
104 | | - |
105 | | -let staticLibs = [ |
106 | | - "Database": "FirebaseDatabaseUI", |
107 | | - "Auth" : "FirebaseAuthUI", |
108 | | - "Facebook": "FirebaseFacebookAuthUI", |
109 | | - "Google" : "FirebaseGoogleAuthUI", |
110 | | -] |
111 | | - |
112 | 114 | // make folder structure for built products |
113 | 115 | schemes.forEach { scheme in |
114 | 116 | let schemeDir = BuiltProductsDir + scheme |
@@ -202,4 +204,33 @@ lipos.forEach { $0.launch() } |
202 | 204 | // copy license file |
203 | 205 | cp(from: "LICENSE", to: BuiltProductsDir) |
204 | 206 |
|
| 207 | +// clean up build artifacts afterward |
| 208 | + |
| 209 | +/// Moves files to trash |
| 210 | +func rm(path: String, isDirectory: Bool) -> Void { |
| 211 | + let url = NSURL(fileURLWithPath: path, isDirectory: isDirectory) |
| 212 | + let fileManager = NSFileManager() |
| 213 | + do { |
| 214 | + try fileManager.trashItemAtURL(url, resultingItemURL: nil) |
| 215 | + } catch (let error) { |
| 216 | + print(fileManager.currentDirectoryPath) |
| 217 | + print(error) |
| 218 | + exit(1) |
| 219 | + } |
| 220 | +} |
| 221 | + |
| 222 | +func zip(input: String, output: String) -> Void { |
| 223 | + let task = NSTask() |
| 224 | + task.launchPath = "/usr/bin/zip" |
| 225 | + task.arguments = ["-r", "-9", output, input] |
| 226 | + task.launch() |
| 227 | + task.waitUntilExit() |
| 228 | + guard task.terminationStatus == 0 else { exit(task.terminationStatus) } |
| 229 | +} |
| 230 | + |
| 231 | +zip("FirebaseUIFrameworks", output: "FirebaseUIFrameworks.zip") |
| 232 | + |
| 233 | +rm(DerivedDataDir, isDirectory: true) |
| 234 | +rm(BuiltProductsDir, isDirectory: true) |
| 235 | + |
205 | 236 | exit(0) |
0 commit comments