Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/config-kotlin.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ kotlin {
repositories {
maven("https://repo.papermc.io/repository/maven-public/") {
mavenContent {
includeGroup("codechicken")
includeGroup("io.codechicken")
includeGroup("net.fabricmc")
includeGroupAndSubgroups("io.papermc")
}
Expand Down
4 changes: 2 additions & 2 deletions buildSrc/src/main/kotlin/config-publish.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ val shadowJar by tasks.existing(ShadowJar::class) {

val prefix = "paper.libs"
listOf(
"codechicken.diffpatch",
/* -> */ "codechicken.repack",
"io.codechicken.diffpatch",
/* -> */ "io.codechicken.repack",
"com.github.salomonbrys.kotson",
"com.google.gson",
"dev.denwav.hypo",
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ hypo-mappings = { module = "dev.denwav.hypo:hypo-mappings", version.ref = "hypo"
lorenzTiny = "net.fabricmc:lorenz-tiny:3.0.0"
jbsdiff = "io.sigpipe:jbsdiff:1.0"

diffpatch = "io.codechicken:DiffPatch:1.5.0.30"
diffpatch = "io.codechicken:DiffPatch:2.1.0.42"

serialize-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "serialize" }
serialize-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialize" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

package io.papermc.paperweight.core.taskcontainers

import codechicken.diffpatch.util.PatchMode
import io.codechicken.diffpatch.util.PatchMode
import io.papermc.paperweight.core.extension.UpstreamConfig
import io.papermc.paperweight.core.tasks.FilterRepo
import io.papermc.paperweight.core.tasks.RunNestedBuild
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@

package io.papermc.paperweight.core.tasks

import codechicken.diffpatch.cli.PatchOperation
import codechicken.diffpatch.util.LoggingOutputStream
import codechicken.diffpatch.util.archiver.ArchiveFormat
import io.codechicken.diffpatch.cli.PatchOperation
import io.codechicken.diffpatch.util.Input as DiffInput
import io.codechicken.diffpatch.util.Output as DiffOutput
import io.codechicken.diffpatch.util.archiver.ArchiveFormat
import io.papermc.paperweight.PaperweightException
import io.papermc.paperweight.core.util.ApplySourceATs
import io.papermc.paperweight.tasks.*
Expand Down Expand Up @@ -153,12 +154,12 @@ abstract class SetupMinecraftSources : JavaLauncherZippedTask() {
println("Applying mache patches...")

val result = PatchOperation.builder()
.logTo(LoggingOutputStream(logger, LogLevel.LIFECYCLE))
.basePath(outputPath.convertToPath())
.outputPath(outputPath.convertToPath())
.patchesPath(mache.singleFile.toPath(), ArchiveFormat.ZIP)
.logTo(logger::lifecycle)
.baseInput(DiffInput.MultiInput.folder(outputPath.convertToPath()))
.patchedOutput(DiffOutput.MultiOutput.folder(outputPath.convertToPath()))
.patchesInput(DiffInput.MultiInput.archive(ArchiveFormat.ZIP, mache.singleFile.toPath()))
.patchesPrefix("patches")
.level(codechicken.diffpatch.util.LogLevel.INFO)
.level(io.codechicken.diffpatch.util.LogLevel.INFO)
.ignorePrefix(".git")
.build()
.operate()
Expand All @@ -168,10 +169,10 @@ abstract class SetupMinecraftSources : JavaLauncherZippedTask() {
}

if (result.exit != 0) {
throw Exception("Failed to apply ${result.summary.failedMatches} mache patches")
throw Exception("Failed to apply ${result.summary?.failedMatches} mache patches")
}

logger.lifecycle("Applied ${result.summary.changedFiles} mache patches")
logger.lifecycle("Applied ${result.summary?.changedFiles} mache patches")
}

if (atFile.isPresent) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@

package io.papermc.paperweight.core.tasks.patching

import codechicken.diffpatch.cli.PatchOperation
import codechicken.diffpatch.match.FuzzyLineMatcher
import codechicken.diffpatch.util.LoggingOutputStream
import codechicken.diffpatch.util.PatchMode
import io.codechicken.diffpatch.cli.PatchOperation
import io.codechicken.diffpatch.match.FuzzyLineMatcher
import io.codechicken.diffpatch.util.Input as DiffInput
import io.codechicken.diffpatch.util.Output as DiffOutput
import io.codechicken.diffpatch.util.PatchMode
import io.papermc.paperweight.PaperweightException
import io.papermc.paperweight.tasks.*
import io.papermc.paperweight.util.*
import java.io.PrintStream
import java.nio.file.Path
import java.time.Instant
import kotlin.io.path.*
Expand Down Expand Up @@ -210,34 +210,33 @@ abstract class ApplyFilePatches : BaseTask() {
return patchFiles.size
}

private fun applyWithDiffPatch(): Int {
val printStream = PrintStream(LoggingOutputStream(logger, LogLevel.LIFECYCLE))
private fun applyWithDiffPatch(): Int? {
val builder = PatchOperation.builder()
.logTo(printStream)
.basePath(output.path)
.patchesPath(patches.path)
.outputPath(output.path)
.level(if (verbose.get()) codechicken.diffpatch.util.LogLevel.ALL else codechicken.diffpatch.util.LogLevel.INFO)
.logTo(logger::lifecycle)
.baseInput(DiffInput.MultiInput.folder(output.path))
.patchesInput(DiffInput.MultiInput.folder(patches.path))
.patchedOutput(DiffOutput.MultiOutput.folder(output.path))
.level(if (verbose.get()) io.codechicken.diffpatch.util.LogLevel.ALL else io.codechicken.diffpatch.util.LogLevel.INFO)
.mode(mode())
.minFuzz(minFuzz())
.summary(verbose.get())
.lineEnding("\n")
.ignorePrefix(".git")
if (rejectsDir.isPresent && emitRejects.get()) {
builder.rejectsPath(rejectsDir.path)
builder.rejectsOutput(DiffOutput.MultiOutput.folder(rejectsDir.path))
}

val result = builder.build().operate()

commit()

if (result.exit != 0) {
val total = result.summary.failedMatches + result.summary.exactMatches +
result.summary.accessMatches + result.summary.offsetMatches + result.summary.fuzzyMatches
throw Exception("Failed to apply ${result.summary.failedMatches}/$total hunks")
val total = (result.summary?.failedMatches ?: 0) + (result.summary?.exactMatches ?: 0) +
(result.summary?.accessMatches ?: 0) + (result.summary?.offsetMatches ?: 0) + (result.summary?.fuzzyMatches ?: 0)
throw Exception("Failed to apply ${result.summary?.failedMatches}/$total hunks")
}

return result.summary.changedFiles
return result.summary?.changedFiles
}

private fun setupGitHook(outputPath: Path) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

package io.papermc.paperweight.core.tasks.patching

import codechicken.diffpatch.util.PatchMode
import io.codechicken.diffpatch.util.PatchMode
import io.papermc.paperweight.core.util.defaultMinFuzz
import javax.inject.Inject
import org.gradle.api.provider.Property
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@

package io.papermc.paperweight.core.tasks.patching

import codechicken.diffpatch.cli.PatchOperation
import codechicken.diffpatch.util.LogLevel
import codechicken.diffpatch.util.PatchMode
import io.codechicken.diffpatch.cli.PatchOperation
import io.codechicken.diffpatch.util.Input as DiffInput
import io.codechicken.diffpatch.util.LogLevel
import io.codechicken.diffpatch.util.Output as DiffOutput
import io.codechicken.diffpatch.util.PatchMode
import io.papermc.paperweight.PaperweightException
import io.papermc.paperweight.core.util.defaultMinFuzz
import io.papermc.paperweight.tasks.*
Expand Down Expand Up @@ -129,10 +131,10 @@ abstract class ApplySingleFilePatches : BaseTask() {
.mode(mode.get())
.minFuzz(minFuzz.get().toFloat())
.summary(false)
.basePath(tmpWork)
.patchesPath(tmpPatch)
.outputPath(tmpWork)
.rejectsPath(tmpRej)
.baseInput(DiffInput.MultiInput.folder(tmpWork))
.patchesInput(DiffInput.MultiInput.folder(tmpPatch))
.patchedOutput(DiffOutput.MultiOutput.folder(tmpWork))
.rejectsOutput(DiffOutput.MultiOutput.folder(tmpRej))
.build()

op.operate()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@

package io.papermc.paperweight.core.tasks.patching

import codechicken.diffpatch.cli.DiffOperation
import codechicken.diffpatch.util.LogLevel
import codechicken.diffpatch.util.LoggingOutputStream
import io.codechicken.diffpatch.cli.DiffOperation
import io.codechicken.diffpatch.util.Input as DiffInput
import io.codechicken.diffpatch.util.LogLevel
import io.codechicken.diffpatch.util.Output as DiffOutput
import io.papermc.paperweight.PaperweightException
import io.papermc.paperweight.core.util.ApplySourceATs
import io.papermc.paperweight.tasks.*
import io.papermc.paperweight.util.*
import java.io.PrintStream
import java.nio.file.Path
import kotlin.io.path.*
import org.cadixdev.at.AccessTransformSet
Expand Down Expand Up @@ -182,13 +182,12 @@ abstract class RebuildFilePatches : JavaLauncherTask() {
baseDir: Path,
inputDir: Path,
patchDir: Path
): Int {
val printStream = PrintStream(LoggingOutputStream(logger, org.gradle.api.logging.LogLevel.LIFECYCLE))
): Int? {
val result = DiffOperation.builder()
.logTo(printStream)
.aPath(baseDir)
.bPath(inputDir)
.outputPath(patchDir)
.logTo(logger::lifecycle)
.baseInput(DiffInput.MultiInput.folder(baseDir))
.changedInput(DiffInput.MultiInput.folder(inputDir))
.patchesOutput(DiffOutput.MultiOutput.folder(patchDir))
.autoHeader(true)
.level(if (verbose.get()) LogLevel.ALL else LogLevel.INFO)
.lineEnding("\n")
Expand All @@ -200,7 +199,7 @@ abstract class RebuildFilePatches : JavaLauncherTask() {
.summary(verbose.get())
.build()
.operate()
return result.summary.changedFiles
return result.summary?.changedFiles
}

private fun handleAts(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@

package io.papermc.paperweight.core.tasks.patching

import codechicken.diffpatch.cli.DiffOperation
import codechicken.diffpatch.util.LogLevel
import io.codechicken.diffpatch.cli.DiffOperation
import io.codechicken.diffpatch.util.Input as DiffInput
import io.codechicken.diffpatch.util.LogLevel
import io.codechicken.diffpatch.util.Output as DiffOutput
import io.papermc.paperweight.tasks.*
import io.papermc.paperweight.util.*
import java.io.PrintStream
Expand Down Expand Up @@ -80,9 +82,9 @@ abstract class RebuildSingleFilePatches : BaseTask() {

val result = DiffOperation.builder()
.logTo(logOut)
.aPath(tmpA)
.bPath(tmpB)
.outputPath(tmpPatch)
.baseInput(DiffInput.MultiInput.folder(tmpA))
.changedInput(DiffInput.MultiInput.folder(tmpB))
.patchesOutput(DiffOutput.MultiOutput.folder(tmpPatch))
.autoHeader(true)
.level(LogLevel.ALL)
.lineEnding("\n")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@

package io.papermc.paperweight.tasks

import codechicken.diffpatch.cli.DiffOperation
import codechicken.diffpatch.util.LogLevel
import io.codechicken.diffpatch.cli.DiffOperation
import io.codechicken.diffpatch.util.Input as DiffInput
import io.codechicken.diffpatch.util.LogLevel
import io.codechicken.diffpatch.util.Output as DiffOutput
import io.papermc.paperweight.util.*
import io.papermc.paperweight.util.constants.*
import java.io.PrintStream
Expand Down Expand Up @@ -168,9 +170,9 @@ abstract class GenerateDevBundle : BaseTask() {
PrintStream(logFile.toFile(), Charsets.UTF_8).use { logOut ->
DiffOperation.builder()
.logTo(logOut)
.aPath(a)
.bPath(b)
.outputPath(patchOut, null)
.baseInput(DiffInput.MultiInput.folder(a))
.changedInput(DiffInput.MultiInput.folder(b))
.patchesOutput(DiffOutput.MultiOutput.folder(patchOut))
.autoHeader(true)
.level(LogLevel.ALL)
.lineEnding("\n")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@

package io.papermc.paperweight.userdev.internal.setup.action

import codechicken.diffpatch.cli.PatchOperation
import codechicken.diffpatch.util.LogLevel
import codechicken.diffpatch.util.archiver.ArchiveFormat
import io.codechicken.diffpatch.cli.PatchOperation
import io.codechicken.diffpatch.util.Input as DiffInput
import io.codechicken.diffpatch.util.LogLevel
import io.codechicken.diffpatch.util.Output as DiffOutput
import io.codechicken.diffpatch.util.archiver.ArchiveFormat
import io.papermc.paperweight.PaperweightException
import io.papermc.paperweight.userdev.internal.action.FileValue
import io.papermc.paperweight.userdev.internal.action.Input
Expand Down Expand Up @@ -68,9 +70,9 @@ class ApplyDevBundlePatchesAction(
.logTo(logOut)
.level(LogLevel.ALL)
.summary(true)
.basePath(decompiledJar.get(), ArchiveFormat.ZIP)
.patchesPath(tempPatchDir)
.outputPath(outputDir)
.baseInput(DiffInput.MultiInput.archive(ArchiveFormat.ZIP, decompiledJar.get()))
.patchesInput(DiffInput.MultiInput.folder(tempPatchDir))
.patchedOutput(DiffOutput.MultiOutput.folder(outputDir))
.build()
try {
op.operate().throwOnError()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@

package io.papermc.paperweight.userdev.internal.setup.action

import codechicken.diffpatch.cli.PatchOperation
import codechicken.diffpatch.util.LogLevel
import codechicken.diffpatch.util.archiver.ArchiveFormat
import io.codechicken.diffpatch.cli.PatchOperation
import io.codechicken.diffpatch.util.Input as DiffInput
import io.codechicken.diffpatch.util.LogLevel
import io.codechicken.diffpatch.util.Output as DiffOutput
import io.codechicken.diffpatch.util.archiver.ArchiveFormat
import io.papermc.paperweight.PaperweightException
import io.papermc.paperweight.tasks.mache.macheDecompileJar
import io.papermc.paperweight.userdev.internal.action.DirectoryValue
Expand Down Expand Up @@ -72,9 +74,9 @@ class SetupMacheSourcesAction(
val result = PrintStream(log.toFile(), Charsets.UTF_8).use { logOut ->
PatchOperation.builder()
.logTo(logOut)
.basePath(tempOut, ArchiveFormat.ZIP)
.outputPath(outputJar.get(), ArchiveFormat.ZIP)
.patchesPath(mache.get().singleFile.toPath(), ArchiveFormat.ZIP)
.baseInput(DiffInput.MultiInput.archive(ArchiveFormat.ZIP, tempOut))
.patchedOutput(DiffOutput.MultiOutput.archive(ArchiveFormat.ZIP, outputJar.get()))
.patchesInput(DiffInput.MultiInput.archive(ArchiveFormat.ZIP, mache.get().singleFile.toPath()))
.patchesPrefix("patches")
.level(LogLevel.ALL)
.summary(true)
Expand Down
Loading