update checker using github release page

This commit is contained in:
minjaesong
2023-10-03 17:07:38 +09:00
parent b206268e05
commit c8c18d68a7
4 changed files with 83 additions and 9 deletions

View File

@@ -15,11 +15,11 @@ The filenames must be:
Then, on the terminal, run following commands:
```
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-x86/jmods:mods --add-modules java.base,java.desktop,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-linux-x86 --no-header-files --no-man-pages --strip-debug --compress=2
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-arm/jmods:mods --add-modules java.base,java.desktop,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-linux-arm --no-header-files --no-man-pages --strip-debug --compress=2
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-windows/jmods:mods --add-modules java.base,java.desktop,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-windows-x86 --no-header-files --no-man-pages --strip-debug --compress=2
jlink --module-path ~/Documents/openjdk/jdk-17.0.1.jdk-arm/Contents/Home/jmods:mods --add-modules java.base,java.desktop,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-osx-arm --no-header-files --no-man-pages --strip-debug --compress=2
jlink --module-path ~/Documents/openjdk/jdk-17.0.1.jdk-x86/Contents/Home/jmods:mods --add-modules java.base,java.desktop,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-osx-x86 --no-header-files --no-man-pages --strip-debug --compress=2
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-x86/jmods:mods --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-linux-x86 --no-header-files --no-man-pages --strip-debug --compress=2
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-arm/jmods:mods --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-linux-arm --no-header-files --no-man-pages --strip-debug --compress=2
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-windows/jmods:mods --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-windows-x86 --no-header-files --no-man-pages --strip-debug --compress=2
jlink --module-path ~/Documents/openjdk/jdk-17.0.1.jdk-arm/Contents/Home/jmods:mods --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-osx-arm --no-header-files --no-man-pages --strip-debug --compress=2
jlink --module-path ~/Documents/openjdk/jdk-17.0.1.jdk-x86/Contents/Home/jmods:mods --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-osx-x86 --no-header-files --no-man-pages --strip-debug --compress=2
```
(note: matching the building machine with the target OS is highly recommended -- Use Linux for building linux x86/arm; Mac for building macOS x86/arm; Windows for building Windows Java Runtime)

View File

@@ -1,11 +1,9 @@
package net.torvald.terrarum;
import com.badlogic.gdx.*;
import com.badlogic.gdx.Graphics;
import com.badlogic.gdx.audio.AudioDevice;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Graphics;
import com.badlogic.gdx.controllers.Controllers;
import com.badlogic.gdx.graphics.*;
import com.badlogic.gdx.graphics.Color;
@@ -32,7 +30,6 @@ import net.torvald.terrarum.langpack.Lang;
import net.torvald.terrarum.modulebasegame.IngameRenderer;
import net.torvald.terrarum.modulebasegame.TerrarumIngame;
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory;
import net.torvald.terrarum.serialise.Common;
import net.torvald.terrarum.serialise.WriteConfig;
import net.torvald.terrarum.ui.Toolkit;
import net.torvald.terrarum.utils.JsonFetcher;
@@ -44,7 +41,6 @@ import net.torvald.unsafe.DanglingPointerException;
import net.torvald.unsafe.UnsafeHelper;
import net.torvald.util.DebugTimers;
import java.awt.*;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
@@ -327,6 +323,8 @@ public class App implements ApplicationListener {
public static long bogoflops = 0L;
private static double bogoflopf = Math.random();
public static boolean hasUpdate = true;
public static Screen getCurrentScreen() {
return currentScreen;
}
@@ -1115,6 +1113,10 @@ public class App implements ApplicationListener {
}
hasUpdate = CheckUpdate.INSTANCE.hasUpdate();
printdbg(this, "Has update: " + hasUpdate);
printdbg(this, "PostInit done");
}

View File

@@ -0,0 +1,70 @@
package net.torvald.terrarum
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.App.printdbgerr
import net.torvald.terrarum.savegame.ByteArray64GrowableOutputStream
import net.torvald.terrarum.savegame.DiskSkimmer.Companion.read
import java.io.*
import java.net.MalformedURLException
import java.net.URI
import java.net.URL
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
/**
* Created by minjaesong on 2023-10-03.
*/
object CheckUpdate {
private val versionNumFull = App.getVERSION_STRING()
private val versionNumOnly = String.format(
"%d.%d.%d",
App.VERSION_RAW ushr 48,
App.VERSION_RAW and 0xffff000000L ushr 24,
App.VERSION_RAW and 0xffffffL
)
private val checkUpdateURL = setOf(
"https://github.com/curioustorvald/Terrarum/releases/tag/v$versionNumOnly",
"https://github.com/curioustorvald/Terrarum/releases/tag/v$versionNumFull",
).toList()
private fun wget(url: String): String? {
printdbg(this, "wget $url")
var ret: String? = null
var fail: Throwable? = null
try {
// check the http connection before we do anything to the fs
val client = HttpClient.newBuilder().build()
val request = HttpRequest.newBuilder().uri(URI.create(url)).build()
val response = client.send(request, HttpResponse.BodyHandlers.ofString())
ret = if (response.statusCode() >= 400) null else response.body()
printdbg(this, "HTTP ${response.statusCode()}")
}
catch (e: Throwable) {
fail = e
printdbgerr(this, "wget $url got error: ${e.stackTraceToString()}")
}
finally {
}
return ret
}
fun hasUpdate(): Boolean {
var allNull = true
val hasLatestAny = checkUpdateURL.any { url ->
val http = wget(url)
if (http != null) allNull = false
http?.contains("a href=\"/curioustorvald/Terrarum/releases/latest") ?: false
}
return if (allNull) false else !hasLatestAny
}
}

View File

@@ -111,6 +111,8 @@ public class Principii {
cmd0.add(runtime);
cmd0.addAll(extracmds);
cmd0.addAll(userDefinedExtraCmds);
// cmd0.add("-Dhttps.protocols=SSLv3,TLSv1.2,TLSv1.1,TLSv1");
// cmd0.add("-Djavax.net.debug=ssl:handshake:verbose");
cmd0.add("-Xms1G");
cmd0.add("-Xmx"+xmx+"G");
cmd0.add("-cp");