pluginManagement {
	repositories {
		gradlePluginPortal()
	}
}

plugins {
	id "io.spring.develocity.conventions" version "0.0.22"
}

dependencyResolutionManagement {
	repositories {
		mavenCentral()
		maven { url "https://repo.spring.io/milestone" }
	}
}

rootProject.name = 'spring-security'

FileTree buildFiles = fileTree(rootDir) {
	List excludes = gradle.startParameter.projectProperties.get("excludeProjects")?.split(",")
	include '**/*.gradle', '**/*.gradle.kts'
	exclude 'build', '**/gradle', 'settings.gradle', 'buildSrc', '/build.gradle', '.*', 'out'
	exclude '**/grails3'
	if(excludes) {
		exclude excludes
	}
}

String rootDirPath = rootDir.absolutePath + File.separator
buildFiles.each { File buildFile ->

	boolean isDefaultName = 'build.gradle'.equals(buildFile.name)
	boolean isKotlin = buildFile.name.endsWith(".kts")
	if(isDefaultName) {
		String buildFilePath = buildFile.parentFile.absolutePath
		String projectName = buildFilePath.tokenize(File.separator)[-1]
		configureProject(':' + projectName, projectName, buildFile)
	} else {
		String projectName
		if (isKotlin) {
			projectName = buildFile.name.replace('.gradle.kts', '')
		} else {
		 	projectName = buildFile.name.replace('.gradle', '')
		}
		configureProject(':' + projectName, projectName, buildFile)
	}
}

def configureProject(String projectPath, String projectName, File buildFile) {
    include(projectPath)

    def project = findProject(projectPath)
    project.name = projectName
    project.projectDir = buildFile.parentFile
    project.buildFileName = buildFile.name
}
