Scripts/jfmod/src/main/kotlin/io/gitlab/jfronny/jfmod/ext/CurseGradleExt.kt

21 lines
1.1 KiB
Kotlin

package io.gitlab.jfronny.jfmod.ext
import com.matthewprenger.cursegradle.CurseExtension
import com.matthewprenger.cursegradle.CurseProject
import com.matthewprenger.cursegradle.CurseRelation
import com.matthewprenger.cursegradle.Options
import org.gradle.api.Action
import org.gradle.api.DefaultTask
import org.gradle.api.Project
import org.gradle.api.tasks.TaskContainer
import org.gradle.api.tasks.TaskProvider
import org.gradle.kotlin.dsl.closureOf
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.named
val TaskContainer.curseforge: TaskProvider<DefaultTask> get() = named<DefaultTask>("curseforge")
fun Project.curseforge(configure: Action<CurseExtension>) = extensions.configure<CurseExtension> { configure.execute(this) }
fun CurseExtension.options(configure: Action<Options>) = options(closureOf<Options> { configure.execute(this) })
fun CurseExtension.project(configure: Action<CurseProject>) = project(closureOf<CurseProject> { configure.execute(this) })
fun CurseProject.relations(configure: Action<CurseRelation>) = relations(closureOf<CurseRelation> { configure.execute(this) })