Skip to content

Commit bac579a

Browse files
author
David Motsonashvili
committed
improve releaseable library detection, add print output
1 parent d9f4c30 commit bac579a

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

buildSrc/src/main/java/com/google/firebase/gradle/ReleaseGenerator.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,38 @@ open class ReleaseGenerator : DefaultTask() {
1717
fun generateReleaseConfig() {
1818
val currentRelease = project.property("currentRelease").toString()
1919
val pastRelease = project.property("pastRelease").toString()
20+
val printReleaseConfig = project.property("printOutput").toString().toBoolean()
2021
val rootDir = project.rootDir
2122
val availableModules = parseSubProjects(rootDir)
22-
val firebaseLibraries = extractLibraries(availableModules)
23+
val firebaseLibraries = extractLibraries(availableModules, rootDir)
2324

2425
val repo = Git.open(rootDir)
2526
val headRef = repo.repository.resolve(Constants.HEAD)
2627
val branchRef = getObjectRefForBranchName(repo, pastRelease)
2728

28-
val changedDirs = getChangedLibraries(repo, branchRef, headRef, firebaseLibraries)
29-
writeReleaseConfig(rootDir, changedDirs, currentRelease)
29+
val changedLibraries = getChangedLibraries(repo, branchRef, headRef, firebaseLibraries)
30+
writeReleaseConfig(rootDir, changedLibraries, currentRelease)
31+
if (printReleaseConfig) {
32+
println(changedLibraries.joinToString(",", "LIBRARIES TO RELEASE: "))
33+
}
3034
}
3135

32-
private fun extractLibraries(availableModules: Set<String>): List<FirebaseLibrary> {
36+
private fun extractLibraries(availableModules: Set<String>, rootDir: File): List<FirebaseLibrary> {
3337
val nonKtxModules = availableModules.filter { !it.endsWith("ktx") }.toSet()
3438
return nonKtxModules
35-
.filter { possibleModule -> !nonKtxModules.any { it.startsWith("$possibleModule:") } }
3639
.map { moduleName ->
3740
val ktxModuleName = "$moduleName:ktx"
3841

3942
val moduleNames = listOf(moduleName, ktxModuleName).filter { availableModules.contains(it) }
4043
val directories = moduleNames.map { it.replace(":", "/") }
4144

4245
FirebaseLibrary(moduleNames, directories)
46+
}.filter { firebaseLibrary ->
47+
firebaseLibrary.directories.first().let { File(rootDir, "$it/gradle.properties").exists() }
4348
}
4449
}
4550

46-
private fun parseSubProjects(rootDir: File) = File(rootDir, "subprojects.cfg").readLines().filter { !it.startsWith("#") }.filter { it.isNotEmpty() }.toSet()
51+
private fun parseSubProjects(rootDir: File) = File(rootDir, "subprojects.cfg").readLines().filterNot { it.startsWith("#") || it.isEmpty() }.toSet()
4752

4853
@Throws(GitAPIException::class)
4954
private fun getObjectRefForBranchName(repo: Git, branchName: String) =

0 commit comments

Comments
 (0)