|
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