11import org.gradle.api.DefaultTask
22import org.gradle.api.provider.ProviderFactory
33import org.gradle.api.tasks.Input
4- import org.gradle.api.tasks.InputFile
54import org.gradle.api.tasks.OutputDirectory
65import org.gradle.api.tasks.TaskAction
76import org.gradle.work.DisableCachingByDefault
@@ -11,11 +10,8 @@ import javax.inject.Inject
1110@DisableCachingByDefault
1211abstract class GenerateBCInfoTask : DefaultTask () {
1312
14- @get:InputFile
15- val inputFile = project.layout.projectDirectory.file($$" src/main/java/io/github/freya022/botcommands/api/$BCInfo .java" )
16-
1713 @get:OutputDirectory
18- val outputDir = project.layout.buildDirectory.dir(" generated/sources/BotCommands/main/java " )
14+ val outputDir = project.layout.buildDirectory.dir(" generated/sources/BotCommands/main/resources " )
1915
2016 @get:Input
2117 val projectDir: String = project.projectDir.absolutePath
@@ -32,26 +28,19 @@ abstract class GenerateBCInfoTask : DefaultTask() {
3228
3329 @TaskAction
3430 fun run () {
35- val attributes = mapOf (
36- " version-major" to version.major,
37- " version-minor" to version.minor,
38- " version-revision" to version.revision,
39- " version-classifier" to (version.classifier ? : " null" ),
40- " branch-name" to (GitUtils .getCommitBranch(logger, providers, projectDir) ? : " null" ),
41- " commit-hash" to (GitUtils .getCommitHash(logger, providers, projectDir)?.take(10 ) ? : " null" ),
42- " build-jda-version" to jdaVersion,
43- " build-time" to Instant .now().toEpochMilli().toString(),
44- )
45-
46- val initialContent = inputFile.asFile.readText()
47- val filteredContent = initialContent.replaceTokens(attributes).replace($$" $BCInfo " , " BCInfo" )
48-
49- val bcInfoFile = outputDir.get().file(" io/github/freya022/botcommands/api/BCInfo.java" ).asFile
31+ val content = """
32+ BUILD_TIME = ${Instant .now().toEpochMilli()}
33+ VERSION_MAJOR = ${version.major}
34+ VERSION_MINOR = ${version.minor}
35+ VERSION_REVISION = ${version.revision}
36+ VERSION_CLASSIFIER = ${version.classifier ? : " null" }
37+ BRANCH_NAME = ${GitUtils .getCommitBranch(logger, providers, projectDir) ? : " null" }
38+ COMMIT_HASH = ${GitUtils .getCommitHash(logger, providers, projectDir)?.take(10 ) ? : " null" }
39+ BUILD_JDA_VERSION = $jdaVersion
40+ """ .trimIndent()
41+
42+ val bcInfoFile = outputDir.get().file(" BCInfo.properties" ).asFile
5043 bcInfoFile.parentFile.mkdirs()
51- bcInfoFile.writeText(filteredContent)
52- }
53-
54- private fun String.replaceTokens (map : Map <String , String >): String {
55- return map.entries.fold(this ) { current, (key, value) -> current.replace(" @$key @" , value) }
44+ bcInfoFile.writeText(content)
5645 }
5746}
0 commit comments