Skip to content

Commit e550384

Browse files
committed
Polish API
1 parent 89494cd commit e550384

File tree

3 files changed

+28
-31
lines changed

3 files changed

+28
-31
lines changed

grease/src/main/kotlin/io/deepmedia/tools/grease/GreaseExtension.kt

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,31 @@ package io.deepmedia.tools.grease
33
import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator
44
import com.github.jengelman.gradle.plugins.shadow.relocation.SimpleRelocator
55
import com.github.jengelman.gradle.plugins.shadow.transformers.Transformer
6+
import org.gradle.api.Action
7+
import org.gradle.api.model.ObjectFactory
8+
import org.gradle.kotlin.dsl.listProperty
9+
import org.gradle.kotlin.dsl.newInstance
10+
import org.gradle.kotlin.dsl.property
11+
import javax.inject.Inject
612

7-
abstract class GreaseExtension {
13+
abstract class GreaseExtension @Inject constructor(objects: ObjectFactory) {
814

9-
internal val relocators = mutableListOf<Relocator>()
10-
internal val transformers = mutableListOf<Transformer>()
15+
internal val prefix = objects.property<String>().convention("")
16+
internal val relocators = objects.listProperty<Relocator>()
17+
internal val transformers = objects.listProperty<Transformer>()
1118

12-
internal var isRelocationEnabled = false
13-
var relocationPrefix: String = "shadow"
14-
set(value) {
15-
field = value
16-
isRelocationEnabled = true
17-
}
19+
fun relocate(prefix: String = "grease") {
20+
this.prefix.set(prefix)
21+
}
1822

19-
fun relocate(
20-
from: String,
21-
to: String,
22-
configure: (SimpleRelocator.() -> Unit)? = null
23-
) {
23+
fun relocate(from: String, to: String, configure: Action<SimpleRelocator> = Action { }) {
2424
val relocator = SimpleRelocator(from, to, emptyList(), emptyList())
25-
configure?.invoke(relocator)
25+
configure.execute(relocator)
2626
relocators.add(relocator)
2727
}
2828

29-
fun <T : Transformer> transform(
30-
transformer: T,
31-
configure: (T.() -> Unit)? = null
32-
) {
33-
configure?.invoke(transformer)
29+
fun <T : Transformer> transform(transformer: T, configure: Action<T> = Action { }) {
30+
configure.execute(transformer)
3431
transformers.add(transformer)
3532
}
36-
3733
}

grease/src/main/kotlin/io/deepmedia/tools/grease/GreasePlugin.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -481,27 +481,28 @@ open class GreasePlugin : Plugin<Project> {
481481
}
482482
}
483483

484-
if (greaseExtension.isRelocationEnabled) {
484+
val relocationPrefix = greaseExtension.prefix.get()
485+
if (relocationPrefix.isNotEmpty()) {
485486
greaseProcessTask.get().outputs.files
486487
.asSequence()
487488
.flatMap { inputFile -> inputFile.packageNames }
488489
.distinct()
489490
.forEach { packageName ->
490-
val newPackageName = "${greaseExtension.relocationPrefix}.$packageName"
491+
val newPackageName = "${relocationPrefix}.$packageName"
491492
log.d { "Relocate package from $packageName to $newPackageName" }
492493
relocate(packageName, newPackageName)
493494
packagesToReplace[packageName] = newPackageName
494495
}
496+
}
495497

496-
greaseExtension.relocators.forEach { relocator ->
497-
relocate(relocator)
498-
if (relocator is SimpleRelocator) {
499-
packagesToReplace[relocator.pattern] = relocator.shadedPattern
500-
}
498+
greaseExtension.relocators.get().forEach { relocator ->
499+
relocate(relocator)
500+
if (relocator is SimpleRelocator) {
501+
packagesToReplace[relocator.pattern] = relocator.shadedPattern
501502
}
502-
greaseExtension.transformers.forEach(::transform)
503-
504503
}
504+
505+
greaseExtension.transformers.get().forEach(::transform)
505506
}
506507

507508
doLast {

tests/sample-library/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
}
55

66
grease {
7-
relocationPrefix = "temp"
7+
relocate()
88
}
99

1010
android {

0 commit comments

Comments
 (0)