@@ -17,33 +17,38 @@ open class ReleaseGenerator : DefaultTask() {
17
17
fun generateReleaseConfig () {
18
18
val currentRelease = project.property(" currentRelease" ).toString()
19
19
val pastRelease = project.property(" pastRelease" ).toString()
20
+ val printReleaseConfig = project.property(" printOutput" ).toString().toBoolean()
20
21
val rootDir = project.rootDir
21
22
val availableModules = parseSubProjects(rootDir)
22
- val firebaseLibraries = extractLibraries(availableModules)
23
+ val firebaseLibraries = extractLibraries(availableModules, rootDir )
23
24
24
25
val repo = Git .open(rootDir)
25
26
val headRef = repo.repository.resolve(Constants .HEAD )
26
27
val branchRef = getObjectRefForBranchName(repo, pastRelease)
27
28
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
+ }
30
34
}
31
35
32
- private fun extractLibraries (availableModules : Set <String >): List <FirebaseLibrary > {
36
+ private fun extractLibraries (availableModules : Set <String >, rootDir : File ): List <FirebaseLibrary > {
33
37
val nonKtxModules = availableModules.filter { ! it.endsWith(" ktx" ) }.toSet()
34
38
return nonKtxModules
35
- .filter { possibleModule -> ! nonKtxModules.any { it.startsWith(" $possibleModule :" ) } }
36
39
.map { moduleName ->
37
40
val ktxModuleName = " $moduleName :ktx"
38
41
39
42
val moduleNames = listOf (moduleName, ktxModuleName).filter { availableModules.contains(it) }
40
43
val directories = moduleNames.map { it.replace(" :" , " /" ) }
41
44
42
45
FirebaseLibrary (moduleNames, directories)
46
+ }.filter { firebaseLibrary ->
47
+ firebaseLibrary.directories.first().let { File (rootDir, " $it /gradle.properties" ).exists() }
43
48
}
44
49
}
45
50
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()
47
52
48
53
@Throws(GitAPIException ::class )
49
54
private fun getObjectRefForBranchName (repo : Git , branchName : String ) =
0 commit comments