aboutsummaryrefslogtreecommitdiff
path: root/buildSrc/src/main/kotlin/skyhannibuildsystem/DownloadBackupRepo.kt
blob: f59bf34a8c10119cca41c5cb3d97abdfa9b67e26 (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
package skyhannibuildsystem

import org.gradle.api.DefaultTask
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
import java.net.URL

// Code taken from NotEnoughUpdates
abstract class DownloadBackupRepo : DefaultTask() {

    @get:OutputDirectory
    abstract val outputDirectory: DirectoryProperty

    @get:Input
    abstract var branch: String

    @get:Internal
    val repoFile get() = outputDirectory.get().asFile.resolve("assets/skyhanni/repo.zip")

    @TaskAction
    fun downloadRepo() {
        val downloadUrl = URL("https://github.com/hannibal002/SkyHanni-Repo/archive/refs/heads/$branch.zip")
        val file = repoFile
        file.parentFile.mkdirs()
        file.outputStream().use { out ->
            downloadUrl.openStream().use { inp ->
                inp.copyTo(out)
            }
        }
    }
}