plugins {
    alias(libs.plugins.androidApplication) apply false
    alias(libs.plugins.jetbrainsKotlinAndroid) apply false
    alias(libs.plugins.androidLibrary) apply false
    alias(libs.plugins.jetbrainsKotlinJvm) apply false
    alias(libs.plugins.androidBenchmark) apply false
    alias(libs.plugins.diffplugSpotless)
    alias(libs.plugins.googleServices) apply false
    alias(libs.plugins.jetbrainsComposeCompiler) apply false
}

allprojects {
    apply plugin: 'com.diffplug.spotless'

    if (project === rootProject) {
        spotless {
            predeclareDeps()
        }
        spotlessPredeclare {
            kotlin {
                ktlint("1.3.1")
            }
        }
    } else {
        spotless {
            kotlin {
                target 'src/**/*.kt'

                ktlint("1.3.1")
                licenseHeaderFile rootProject.file('spotless/copyright.kt'), "package|import|class|object|sealed|open|interface|abstract "
            }

            groovyGradle {
                target '*.gradle'
            }
        }
    }
}

subprojects {
    afterEvaluate {
        tasks.named("preBuild") {
            dependsOn("spotlessApply")
        }
    }
}

tasks.register('installGitHook', Copy) {
    from new File(rootProject.rootDir, 'git-hooks/pre-commit')
    from new File(rootProject.rootDir, 'git-hooks/pre-push')
    into { new File(rootProject.rootDir, '.git/hooks') }
    fileMode 0777
}
tasks.getByPath(':amethyst:preBuild').dependsOn installGitHook