blob: efd9cbf0d0d17562f9abdda3d020b140da03b8d4 (
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
|
import org.gradle.api.Project
import org.gradle.api.tasks.TaskProvider
import java.util.*
import javax.inject.Inject
abstract class DownloadExtension {
@get:Inject
abstract val project: Project
fun downloadTaskName(name: String) =
"download" + name.capitalize(Locale.ROOT)
inline fun <reified T : DownloadArchiveFile<*>> archive(name: String, noinline configure: T.() -> Unit)
: TaskProvider<T> =
project.tasks.register(downloadTaskName(name), T::class.java) {
outputDir.convention(project.layout.buildDirectory.dir("downloadedSources/$name"))
configure(this)
}
fun zip(name: String, configure: DownloadZipFile.() -> Unit): TaskProvider<DownloadZipFile> {
return archive(name, configure)
}
fun tar(name: String, configure: DownloadTarFile.() -> Unit): TaskProvider<DownloadTarFile> {
return archive(name, configure)
}
}
|