buildSrc/src/main/kotlin/SourceLicenseChecker.kt
author Da Risk <da_risk@geekorum.com>
Thu, 23 Jul 2020 19:14:38 -0400
changeset 15 fc8b8638d5e3
parent 10 9aad34f43f71
child 19 91a3ad3b1b9c
permissions -rw-r--r--
update dependencies
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
     1
/*
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
     2
 * Geekdroid is a utility library for development on the Android
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
     3
 * Platform.
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
     4
 *
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
     5
 * Copyright (C) 2017-2020 by Frederic-Charles Barthelery.
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
     6
 *
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
     7
 * This file is part of Geekdroid.
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
     8
 *
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
     9
 * Geekdroid is free software: you can redistribute it and/or modify
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    10
 * it under the terms of the GNU General Public License as published by
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    11
 * the Free Software Foundation, either version 3 of the License, or
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    12
 * (at your option) any later version.
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    13
 *
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    14
 * Geekdroid is distributed in the hope that it will be useful,
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    17
 * GNU General Public License for more details.
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    18
 *
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    19
 * You should have received a copy of the GNU General Public License
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    20
 * along with Geekdroid.  If not, see <http://www.gnu.org/licenses/>.
9aad34f43f71 More license headers
Da Risk <da_risk@geekorum.com>
parents: 1
diff changeset
    21
 */
1
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    22
package com.geekorum.build
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    23
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    24
import com.hierynomus.gradle.license.LicenseBasePlugin
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    25
import com.hierynomus.gradle.license.tasks.LicenseCheck
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    26
import com.hierynomus.gradle.license.tasks.LicenseFormat
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    27
import nl.javadude.gradle.plugins.license.LicenseExtension
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    28
import nl.javadude.gradle.plugins.license.LicensePlugin
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    29
import org.gradle.api.Project
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    30
import org.gradle.api.Task
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    31
import org.gradle.kotlin.dsl.apply
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    32
import org.gradle.kotlin.dsl.configure
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    33
import org.gradle.kotlin.dsl.invoke
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    34
import org.gradle.kotlin.dsl.named
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    35
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    36
internal fun Project.configureSourceLicenseChecker(): Unit {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    37
    apply<LicensePlugin>()
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
    configure<LicenseExtension> {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    40
        header = file("$rootDir/config/license/header.txt")
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    41
        // ignore failures for now until we set the final license
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    42
        ignoreFailures = true
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    43
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    44
        excludes(listOf("**/*.webp", "**/*.png"))
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
    tasks {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    48
        val checkKotlinFilesLicenseTask = register("checkKotlinFilesLicense", LicenseCheck::class.java) {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    49
            source = fileTree("src").apply {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    50
                include("**/*.kt")
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    51
            }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    52
        }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    53
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    54
        val formatKotlinFilesLicenseTask = register("formatKotlinFilesLicense", LicenseFormat::class.java) {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    55
            source = fileTree("src").apply {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    56
                include("**/*.kt")
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    57
            }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    58
        }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    59
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    60
        named<Task>(LicenseBasePlugin.getLICENSE_TASK_BASE_NAME()) {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    61
            dependsOn(checkKotlinFilesLicenseTask)
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    62
        }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    63
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    64
        named<Task>(LicenseBasePlugin.getFORMAT_TASK_BASE_NAME()) {
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    65
            dependsOn(formatKotlinFilesLicenseTask)
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    66
        }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    67
    }
831cffa9c991 source import
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    68
}