1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-27 08:38:13 -07:00

addTask() work.

This commit is contained in:
Cedric Beust 2015-10-10 03:03:50 -07:00
parent 2d23d082f2
commit d1fb150ee1
3 changed files with 23 additions and 21 deletions

View file

@ -154,8 +154,6 @@ public class Plugins @Inject constructor (val taskManagerProvider : Provider<Tas
projects.filter { plugin.accept(it) }.forEach { project -> projects.filter { plugin.accept(it) }.forEach { project ->
plugin.addStaticTask(annotation, project, toTask(method, project, plugin)) plugin.addStaticTask(annotation, project, toTask(method, project, plugin))
annotation.runBefore.forEach { plugin.dependsOn(it, annotation.name) }
annotation.runAfter.forEach { plugin.dependsOn(annotation.name, it) }
} }
} }
} }

View file

@ -16,19 +16,14 @@ abstract public class BasePlugin : Plugin {
override fun accept(project: Project) = true override fun accept(project: Project) = true
var plugins : Plugins by Delegates.notNull() var plugins : Plugins by Delegates.notNull()
fun addSyntheticTask(name: String, project: Project, task: (Project) -> TaskResult) { /**
val task = object: PluginTask() { * Add a dynamic task.
override val doc = "A synthetic task" */
override val name = name fun addTask(project: Project, name: String, description: String = "",
override val plugin = this@BasePlugin runBefore: List<String> = arrayListOf<String>(),
override val project = project runAfter: List<String> = arrayListOf<String>(),
task: (Project) -> TaskResult) {
override fun call(): TaskResult2<PluginTask>? { addGenericTask(project, name, description, runBefore, runAfter, task)
val taskResult = task(project)
return TaskResult2(taskResult.success, this)
}
}
tasks.add(task)
} }
} }

View file

@ -18,12 +18,21 @@ public interface Plugin {
val methodTasks : ArrayList<MethodTask> val methodTasks : ArrayList<MethodTask>
fun addStaticTask(annotation: Task, project: Project, task: (Project) -> TaskResult) { fun addStaticTask(annotation: Task, project: Project, task: (Project) -> TaskResult) {
tasks.add(object : BasePluginTask(this, annotation.name, annotation.description, project) { addGenericTask(project, annotation.name, annotation.description, annotation.runBefore.toList(),
annotation.runAfter.toList(), task)
}
fun addGenericTask(project: Project, name: String, description: String,
runBefore: List<String>, runAfter: List<String>, task: (Project) -> TaskResult) {
tasks.add(
object : BasePluginTask(this, name, description, project) {
override fun call(): TaskResult2<PluginTask> { override fun call(): TaskResult2<PluginTask> {
val taskResult = task(project) val taskResult = task(project)
return TaskResult2(taskResult.success, this) return TaskResult2(taskResult.success, this)
} }
}) })
runBefore.forEach { dependsOn(it, name) }
runAfter.forEach { dependsOn(name, it) }
} }
var taskManager : TaskManager var taskManager : TaskManager