Upload the limbo jar to a temp file, verify the checksum and rename it atomically
This commit is contained in:
1 parent
115064cafa
commit
e2c574bf0b
1 file changed
+10
-2
+10
-2
@@ -29,12 +29,20 @@ shadowJar {
|
|||||||
mergeServiceFiles()
|
mergeServiceFiles()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hochladen auf den Limbo: ./gradlew uploadLimbo, danach `sudo systemctl restart limbo`
|
// Hochladen auf den Limbo: ./gradlew uploadLimbo, danach `sudo systemctl restart limbo`.
|
||||||
|
// Erst in eine Temp-Datei, Prüfsumme vergleichen, dann atomar umbenennen: ein abgebrochener Upload
|
||||||
|
// lässt das laufende JAR unberührt, und der laufende Prozess behält bis zum Neustart sein altes JAR.
|
||||||
tasks.register('uploadLimbo') {
|
tasks.register('uploadLimbo') {
|
||||||
dependsOn shadowJar
|
dependsOn shadowJar
|
||||||
doLast {
|
doLast {
|
||||||
|
def jar = shadowJar.archiveFile.get().asFile
|
||||||
|
def checksum = jar.bytes.digest('SHA-256')
|
||||||
providers.exec {
|
providers.exec {
|
||||||
commandLine 'scp', shadowJar.archiveFile.get().asFile.absolutePath, 'minecraft@10.20.9.3:/home/minecraft/limbo/limbo.jar'
|
commandLine 'scp', jar.absolutePath, 'minecraft@10.20.9.3:/home/minecraft/limbo/limbo.jar.new'
|
||||||
|
}.result.get()
|
||||||
|
providers.exec {
|
||||||
|
commandLine 'ssh', 'minecraft@10.20.9.3',
|
||||||
|
"cd ~/limbo && echo '${checksum} limbo.jar.new' | sha256sum -c --quiet && mv -f limbo.jar.new limbo.jar"
|
||||||
}.result.get()
|
}.result.get()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user