buildSrc/src/main/kotlin/SourceLicenseChecker.kt
author Da Risk <da_risk@geekorum.com>
Fri, 08 May 2020 21:33:19 -0400
changeset 1 831cffa9c991
child 10 9aad34f43f71
permissions -rw-r--r--
source import
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     1
package com.geekorum.build
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     2
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     3
import com.hierynomus.gradle.license.LicenseBasePlugin
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     4
import com.hierynomus.gradle.license.tasks.LicenseCheck
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     5
import com.hierynomus.gradle.license.tasks.LicenseFormat
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     6
import nl.javadude.gradle.plugins.license.LicenseExtension
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     7
import nl.javadude.gradle.plugins.license.LicensePlugin
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     8
import org.gradle.api.Project
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     9
import org.gradle.api.Task
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    10
import org.gradle.kotlin.dsl.apply
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    11
import org.gradle.kotlin.dsl.configure
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    12
import org.gradle.kotlin.dsl.invoke
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    13
import org.gradle.kotlin.dsl.named
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    14
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    15
internal fun Project.configureSourceLicenseChecker(): Unit {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    16
    apply<LicensePlugin>()
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    17
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    18
    configure<LicenseExtension> {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    19
        header = file("$rootDir/config/license/header.txt")
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    20
        // ignore failures for now until we set the final license
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    21
        ignoreFailures = true
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    22
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    23
        excludes(listOf("**/*.webp", "**/*.png"))
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    24
    }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    25
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    26
    tasks {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    27
        val checkKotlinFilesLicenseTask = register("checkKotlinFilesLicense", LicenseCheck::class.java) {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    28
            source = fileTree("src").apply {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    29
                include("**/*.kt")
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    30
            }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    31
        }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    32
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    33
        val formatKotlinFilesLicenseTask = register("formatKotlinFilesLicense", LicenseFormat::class.java) {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    34
            source = fileTree("src").apply {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    35
                include("**/*.kt")
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    36
            }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    37
        }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    38
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    39
        named<Task>(LicenseBasePlugin.getLICENSE_TASK_BASE_NAME()) {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    40
            dependsOn(checkKotlinFilesLicenseTask)
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    41
        }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    42
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    43
        named<Task>(LicenseBasePlugin.getFORMAT_TASK_BASE_NAME()) {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    44
            dependsOn(formatKotlinFilesLicenseTask)
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    45
        }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    46
    }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    47
}