blob: 8e640f045c9159ce14440b35976fc8cc5de4fafe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import com.moowork.gradle.node.NodeExtension
import com.moowork.gradle.node.NodePlugin
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.create
class FrostPlugin : Plugin<Project> {
companion object {
private const val NODE_VERSION = "12.4.0"
}
override fun apply(project: Project) {
project.plugins.withId("java-base") {
project.applyWebGenPlugin()
}
project.gradle.taskGraph.whenReady {
if (!project.plugins.hasPlugin("java-base")) {
throw IllegalArgumentException(
"Frost plugin can't be applied without Android or Java or Kotlin plugin."
)
}
}
}
private fun Project.applyWebGenPlugin() {
setupNode()
// tasks.create(WebGenInstallTask.NAME, WebGenInstallTask::class)
}
private fun Project.setupNode() {
plugins.apply(NodePlugin::class)
val nodeConfig = extensions.findByName("node") as NodeExtension
nodeConfig.download = true
nodeConfig.version = NODE_VERSION
}
}
|