Skip to content

Commit 44ab556

Browse files
committed
Add Gradle property to configure default min fuzz for fuzzy DiffPatch apply
1 parent cb38bbc commit 44ab556

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

paperweight-core/src/main/kotlin/io/papermc/paperweight/core/tasks/patching/ApplyFilePatchesFuzzy.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,22 @@
2121
*/
2222

2323
package io.papermc.paperweight.core.tasks.patching
24+
2425
import codechicken.diffpatch.util.PatchMode
26+
import io.papermc.paperweight.core.util.defaultMinFuzz
27+
import javax.inject.Inject
2528
import org.gradle.api.provider.Property
29+
import org.gradle.api.provider.ProviderFactory
2630
import org.gradle.api.tasks.Input
2731
import org.gradle.api.tasks.UntrackedTask
2832
import org.gradle.api.tasks.options.Option
2933

3034
@UntrackedTask(because = "Always apply patches")
3135
abstract class ApplyFilePatchesFuzzy : ApplyFilePatches() {
3236

37+
@get:Inject
38+
abstract val providers: ProviderFactory
39+
3340
@get:Input
3441
@get:Option(
3542
option = "min-fuzz",
@@ -39,7 +46,7 @@ abstract class ApplyFilePatchesFuzzy : ApplyFilePatches() {
3946

4047
init {
4148
run {
42-
minFuzz.convention("0.5")
49+
minFuzz.convention(providers.defaultMinFuzz())
4350
}
4451
}
4552

paperweight-core/src/main/kotlin/io/papermc/paperweight/core/tasks/patching/ApplySingleFilePatches.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import codechicken.diffpatch.cli.PatchOperation
2626
import codechicken.diffpatch.util.LogLevel
2727
import codechicken.diffpatch.util.PatchMode
2828
import io.papermc.paperweight.PaperweightException
29+
import io.papermc.paperweight.core.util.defaultMinFuzz
2930
import io.papermc.paperweight.tasks.*
3031
import io.papermc.paperweight.util.*
3132
import java.io.PrintStream
@@ -37,6 +38,7 @@ import org.gradle.api.file.RegularFileProperty
3738
import org.gradle.api.model.ObjectFactory
3839
import org.gradle.api.provider.ListProperty
3940
import org.gradle.api.provider.Property
41+
import org.gradle.api.provider.ProviderFactory
4042
import org.gradle.api.tasks.Input
4143
import org.gradle.api.tasks.InputFile
4244
import org.gradle.api.tasks.Internal
@@ -48,6 +50,9 @@ import org.gradle.kotlin.dsl.*
4850

4951
abstract class ApplySingleFilePatches : BaseTask() {
5052

53+
@get:Inject
54+
abstract val providers: ProviderFactory
55+
5156
@get:Internal
5257
abstract val upstream: DirectoryProperty
5358

@@ -57,6 +62,9 @@ abstract class ApplySingleFilePatches : BaseTask() {
5762
@get:Input
5863
abstract val mode: Property<PatchMode>
5964

65+
@get:Input
66+
abstract val minFuzz: Property<String>
67+
6068
abstract class Patch @Inject constructor(
6169
objects: ObjectFactory,
6270
upstream: DirectoryProperty,
@@ -93,6 +101,7 @@ abstract class ApplySingleFilePatches : BaseTask() {
93101
override fun init() {
94102
super.init()
95103
mode.convention(PatchMode.EXACT)
104+
minFuzz.convention(providers.defaultMinFuzz())
96105
}
97106

98107
@TaskAction
@@ -118,6 +127,7 @@ abstract class ApplySingleFilePatches : BaseTask() {
118127
.logTo(logOut)
119128
.level(LogLevel.ALL)
120129
.mode(mode.get())
130+
.minFuzz(minFuzz.get().toFloat())
121131
.summary(false)
122132
.basePath(tmpWork)
123133
.patchesPath(tmpPatch)

paperweight-core/src/main/kotlin/io/papermc/paperweight/core/util/utils.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ package io.papermc.paperweight.core.util
2525
import io.papermc.paperweight.core.extension.PaperweightCoreExtension
2626
import io.papermc.paperweight.util.constants.*
2727
import org.gradle.api.Project
28+
import org.gradle.api.provider.Provider
29+
import org.gradle.api.provider.ProviderFactory
2830

2931
val Project.coreExt: PaperweightCoreExtension
3032
get() = extensions.getByName(PAPERWEIGHT_EXTENSION) as PaperweightCoreExtension
33+
34+
fun ProviderFactory.defaultMinFuzz(): Provider<String> = gradleProperty("paperweight.defaultMinFuzz").orElse("0.5")

0 commit comments

Comments
 (0)