buildSrc/src/main/kotlin/SourceLicenseChecker.kt
changeset 72 0b98a9a23a94
parent 61 7a8bbdc7b290
child 75 534a19e25217
equal deleted inserted replaced
71:0fe2801ff0a2 72:0b98a9a23a94
    37 import org.gradle.kotlin.dsl.*
    37 import org.gradle.kotlin.dsl.*
    38 import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
    38 import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
    39 import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper
    39 import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper
    40 import org.jetbrains.kotlin.gradle.plugin.KotlinJsPluginWrapper
    40 import org.jetbrains.kotlin.gradle.plugin.KotlinJsPluginWrapper
    41 import org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper
    41 import org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper
    42 import java.util.*
    42 import java.util.Locale
    43 
    43 
    44 internal fun Project.configureSourceLicenseChecker() {
    44 internal fun Project.configureSourceLicenseChecker() {
    45     apply<LicensePlugin>()
    45     apply<LicensePlugin>()
    46 
    46 
    47     configure<LicenseExtension> {
    47     configure<LicenseExtension> {
    77     val kotlin = the<KotlinProjectExtension>()
    77     val kotlin = the<KotlinProjectExtension>()
    78     val taskInfix = ""
    78     val taskInfix = ""
    79     kotlin.sourceSets.configureEach {
    79     kotlin.sourceSets.configureEach {
    80         val kotlinSource = this
    80         val kotlinSource = this
    81         val sourceSetTaskName =
    81         val sourceSetTaskName =
    82             "${LicenseBasePlugin.getLICENSE_TASK_BASE_NAME()}${taskInfix}${name.capitalize(Locale.ROOT)}"
    82             "${LicenseBasePlugin.getLICENSE_TASK_BASE_NAME()}${taskInfix}${name.capitalize()}"
    83         logger.info("Adding $sourceSetTaskName task for sourceSet ${kotlinSource.name}")
    83         logger.info("Adding $sourceSetTaskName task for sourceSet ${kotlinSource.name}")
    84         if (sourceSetTaskName in tasks.names) {
    84         if (sourceSetTaskName in tasks.names) {
    85             // tasks may have already been added by configuration for the Android plugin
    85             // tasks may have already been added by configuration for the Android plugin
    86             logger.info("Tasks $sourceSetTaskName already exists. Skip")
    86             logger.info("Tasks $sourceSetTaskName already exists. Skip")
    87             return@configureEach
    87             return@configureEach
    88         }
    88         }
    89         tasks.register(sourceSetTaskName, LicenseCheck::class.java) {
    89         tasks.register(sourceSetTaskName, LicenseCheck::class.java) {
    90             source(kotlinSource.kotlin)
    90             source(kotlinSource.kotlin)
    91         }
    91         }
    92         val sourceSetFormatTaskName =
    92         val sourceSetFormatTaskName =
    93             "${LicenseBasePlugin.getFORMAT_TASK_BASE_NAME()}${taskInfix}${name.capitalize(Locale.ROOT)}"
    93             "${LicenseBasePlugin.getFORMAT_TASK_BASE_NAME()}${taskInfix}${name.capitalize()}"
    94         tasks.register(sourceSetFormatTaskName, LicenseFormat::class.java) {
    94         tasks.register(sourceSetFormatTaskName, LicenseFormat::class.java) {
    95             source(kotlinSource.kotlin)
    95             source(kotlinSource.kotlin)
    96         }
    96         }
    97     }
    97     }
    98 }
    98 }
   104     val taskInfix = "Android"
   104     val taskInfix = "Android"
   105     android.sourceSets.configureEach {
   105     android.sourceSets.configureEach {
   106         val kotlinSource = kotlin.sourceSets[name]
   106         val kotlinSource = kotlin.sourceSets[name]
   107         logger.info("Adding kotlin sources from sourceSet $name to License plugin tasks")
   107         logger.info("Adding kotlin sources from sourceSet $name to License plugin tasks")
   108         val sourceSetTaskName =
   108         val sourceSetTaskName =
   109             "${LicenseBasePlugin.getLICENSE_TASK_BASE_NAME()}${taskInfix}${name.capitalize(Locale.ROOT)}"
   109             "${LicenseBasePlugin.getLICENSE_TASK_BASE_NAME()}${taskInfix}${name.capitalize()}"
   110         tasks.named(sourceSetTaskName, LicenseCheck::class.java) {
   110         tasks.named(sourceSetTaskName, LicenseCheck::class.java) {
   111             source(kotlinSource.kotlin, manifest.srcFile)
   111             source(kotlinSource.kotlin, manifest.srcFile)
   112         }
   112         }
   113         val sourceSetFormatTaskName =
   113         val sourceSetFormatTaskName =
   114             "${LicenseBasePlugin.getFORMAT_TASK_BASE_NAME()}${taskInfix}${name.capitalize(Locale.ROOT)}"
   114             "${LicenseBasePlugin.getFORMAT_TASK_BASE_NAME()}${taskInfix}${name.capitalize()}"
   115         tasks.named(sourceSetFormatTaskName, LicenseFormat::class.java) {
   115         tasks.named(sourceSetFormatTaskName, LicenseFormat::class.java) {
   116             source(kotlinSource.kotlin, manifest.srcFile)
   116             source(kotlinSource.kotlin, manifest.srcFile)
   117         }
   117         }
   118     }
   118     }
   119 }
   119 }
   161 
   161 
   162         // Default to all source files from SourceSet
   162         // Default to all source files from SourceSet
   163         source = sourceSetSources(sourceSet)
   163         source = sourceSetSources(sourceSet)
   164     }
   164     }
   165 }
   165 }
       
   166 
       
   167 private fun String.capitalize() =
       
   168     replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }