Check for existing am session before running continueServerUpdate

This commit is contained in:
Jason Penilla 2024-04-24 10:48:00 -07:00
parent 4e654f2a3a
commit e832328b7e
No known key found for this signature in database
GPG Key ID: 0E75A301420E48F8

View File

@ -1,3 +1,4 @@
import io.papermc.paperweight.PaperweightException
import io.papermc.paperweight.tasks.BaseTask
import io.papermc.paperweight.util.*
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
@ -204,6 +205,14 @@ abstract class RebasePatches : BaseTask() {
@TaskAction
fun run() {
val patchedDirPath = projectDir.path.resolve(patchedDir.get())
if (patchedDirPath.isDirectory()) {
val status = Git(patchedDirPath)("status").getText()
if (status.contains("You are in the middle of an am session.")) {
throw PaperweightException("Cannot continue update when $patchedDirPath is in the middle of an am session.")
}
}
val unapplied = unapplied()
for (patch in unapplied) {
patch.copyTo(appliedLoc(patch))
@ -266,7 +275,7 @@ abstract class RebasePatches : BaseTask() {
}
// Delete the build file before resetting the AM session in case it has compilation errors
projectDir.path.resolve(patchedDir.get()).resolve("build.gradle.kts").deleteIfExists()
patchedDirPath.resolve("build.gradle.kts").deleteIfExists()
// Apply again to reset the am session (so it ends on the failed patch, to allow us to rebuild after fixing it)
val apply2 = ProcessBuilder()
.directory(projectDir.path)