gradle/src/main/kotlin/com/lagradost/cloudstream3/gradle/tasks/MakePluginsJsonTask.kt

40 lines
1.2 KiB
Kotlin
Raw Normal View History

package com.lagradost.cloudstream3.gradle.tasks
import com.lagradost.cloudstream3.gradle.findCloudstream
2022-08-08 09:54:17 +00:00
import com.lagradost.cloudstream3.gradle.makePluginEntry
import com.lagradost.cloudstream3.gradle.entities.PluginEntry
import groovy.json.JsonBuilder
import groovy.json.JsonGenerator
import org.gradle.api.DefaultTask
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
import java.util.LinkedList
2022-08-19 13:07:54 +00:00
import java.lang.Thread
abstract class MakePluginsJsonTask : DefaultTask() {
@get:OutputFile
abstract val outputFile: RegularFileProperty
@TaskAction
fun makePluginsJson() {
2022-08-08 09:54:17 +00:00
val lst = LinkedList<PluginEntry>()
for (subproject in project.allprojects) {
subproject.extensions.findCloudstream() ?: continue
2022-08-08 09:54:17 +00:00
lst.add(subproject.makePluginEntry())
}
outputFile.asFile.get().writeText(
JsonBuilder(
lst,
JsonGenerator.Options()
.excludeNulls()
.build()
2022-08-08 07:40:35 +00:00
).toPrettyString()
)
2022-10-16 08:15:02 +00:00
2022-08-19 11:42:29 +00:00
logger.lifecycle("Created ${outputFile.asFile.get()}")
}
}