/*
 * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

apply plugin: "checkstyle"

task checkstyle(type: Checkstyle) {
    description = "Check Java style with Checkstyle"
    configFile = rootProject.file("configuration/checkstyle-rules.xml")
    configDirectory = rootProject.file("configuration")
    source = javaSources()
    configDirectory = rootProject.file("configuration")
    classpath = files()
    ignoreFailures = false
    showViolations = true
}

checkstyle {
    toolVersion = '8.29'
}

afterEvaluate {
    check.dependsOn 'checkstyle'
}

def javaSources() {
    def files = []
    android.sourceSets.each { sourceSet ->
        sourceSet.java.each { javaSource ->
            javaSource.getSrcDirs().each {
                if (it.exists()) {
                    files.add(it)
                }
            }
        }
    }
    return files
}

