38 lines
1.3 KiB
Kotlin
38 lines
1.3 KiB
Kotlin
package com.lagradost.cloudstream3.gradle.configuration
|
|
|
|
import com.lagradost.cloudstream3.gradle.ApkInfo
|
|
import com.lagradost.cloudstream3.gradle.createProgressLogger
|
|
import com.lagradost.cloudstream3.gradle.download
|
|
import com.lagradost.cloudstream3.gradle.getCloudstream
|
|
import com.googlecode.d2j.dex.Dex2jar
|
|
import com.googlecode.d2j.reader.BaseDexFileReader
|
|
import com.googlecode.d2j.reader.MultiDexFileReader
|
|
import groovy.json.JsonSlurper
|
|
import org.gradle.api.Project
|
|
import org.gradle.api.artifacts.Dependency
|
|
import java.lang.Integer.parseInt
|
|
import java.net.URL
|
|
import java.nio.file.Files
|
|
|
|
class ApkConfigurationProvider : IConfigurationProvider {
|
|
|
|
override val name: String
|
|
get() = "apk"
|
|
|
|
override fun provide(project: Project, dependency: Dependency) {
|
|
val extension = project.extensions.getCloudstream()
|
|
val apkinfo = ApkInfo(extension, dependency.version ?: "pre-release")
|
|
extension.apkinfo = apkinfo
|
|
|
|
apkinfo.cache.mkdirs()
|
|
|
|
if (!apkinfo.jarFile.exists()) {
|
|
project.logger.lifecycle("Fetching JAR")
|
|
|
|
val url = URL("${apkinfo.urlPrefix}/classes.jar")
|
|
url.download(apkinfo.jarFile, createProgressLogger(project, "Download JAR"))
|
|
}
|
|
|
|
project.dependencies.add("compileOnly", project.files(apkinfo.jarFile))
|
|
}
|
|
} |