pluginManagement {
	repositories {
		mavenCentral()
		gradlePluginPortal()
		maven { url 'https://repo.spring.io/release' }
		if (version.contains('-')) {
			maven { url 'https://repo.spring.io/milestone' }
		}
		if (version.endsWith('-SNAPSHOT')) {
			maven { url 'https://repo.spring.io/snapshot' }
		}
	}
	plugins {
		id 'org.springframework.boot' version "$springBootVersion"
		id 'org.graalvm.buildtools.native' version "$nativeBuildToolsVersion"
		id 'com.gradle.enterprise' version "$gradleEnterpriseVersion"
		id 'io.spring.ge.conventions' version "$springGeConventionsVersion"
	}
}

plugins {
	id "com.gradle.enterprise"
	id "io.spring.ge.conventions"
}

rootProject.name = 'spring-shell'

settings.gradle.projectsLoaded {
	gradleEnterprise {
		buildScan {
			def buildDir = settings.gradle.rootProject.getBuildDir()
			buildDir.mkdirs()
			new File(buildDir, "build-scan-uri.txt").text = "build scan not generated"
			buildScanPublished { scan ->
				buildDir.mkdirs()
				new File(buildDir, "build-scan-uri.txt").text = "<${scan.buildScanUri}|build scan>\n"
			}
		}
	}
}

include 'spring-shell-autoconfigure'
include 'spring-shell-core'
include 'spring-shell-core-test-support'
include 'spring-shell-management'
include 'spring-shell-dependencies'
include 'spring-shell-docs'
include 'spring-shell-samples'
include 'spring-shell-standard'
include 'spring-shell-standard-commands'
include 'spring-shell-table'
include 'spring-shell-test'
include 'spring-shell-test-autoconfigure'

file("${rootDir}/spring-shell-starters").eachDirMatch(~/spring-shell-starter.*/) {
	include "spring-shell-starters:${it.name}"
}

rootProject.children.each { project ->
	if (project.name == 'spring-shell-starters') {
		project.children.each { subproject ->
		subproject.buildFileName = "${subproject.name}.gradle"
		}
	} else {
		project.buildFileName = "${project.name}.gradle"
	}
}
