aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle28
-rw-r--r--src/main/kotlin/xyz/brysonsteck/ServerCraft/controllers/InfoController.kt14
-rw-r--r--src/main/kotlin/xyz/brysonsteck/ServerCraft/server/Download.kt2
-rw-r--r--src/main/resources/xyz/brysonsteck/ServerCraft/info.fxml2
4 files changed, 40 insertions, 6 deletions
diff --git a/build.gradle b/build.gradle
index adb9fba..c660a31 100644
--- a/build.gradle
+++ b/build.gradle
@@ -32,8 +32,6 @@ plugins {
apply plugin: 'io.github.fvarrui.javapackager.plugin'
-version = "1.0"
-
repositories {
// Use Maven Central for resolving dependencies.
mavenCentral()
@@ -112,6 +110,28 @@ task pack(type: io.github.fvarrui.javapackager.gradle.PackageTask, dependsOn: bu
}
}
+task createProperties(dependsOn: processResources) {
+ doLast {
+ def stdout = new ByteArrayOutputStream()
+
+ if (project.hasProperty("release")) {
+ project.version = 1.0
+ } else {
+ exec {
+ commandLine "git", "log", "-n", "1", "--pretty=format:\"%h\""
+ standardOutput = stdout
+ }
+ project.version = "git(" + stdout.toString().trim().replaceAll("\"", "") + ")"
+ }
+
+ new File("$buildDir/resources/main/xyz/brysonsteck/ServerCraft/info.properties").withWriter { w ->
+ Properties p = new Properties()
+ p['version'] = project.version.toString()
+ p.store w, null
+ }
+ }
+}
+
build.doLast {
if (OperatingSystem.current().isLinux()) {
exec {
@@ -125,6 +145,10 @@ build.doLast {
}
}
+classes {
+ dependsOn createProperties
+}
+
javafx {
version = "20"
modules = ['javafx.controls', 'javafx.fxml', 'javafx.graphics']
diff --git a/src/main/kotlin/xyz/brysonsteck/ServerCraft/controllers/InfoController.kt b/src/main/kotlin/xyz/brysonsteck/ServerCraft/controllers/InfoController.kt
index dcf77ba..92c6674 100644
--- a/src/main/kotlin/xyz/brysonsteck/ServerCraft/controllers/InfoController.kt
+++ b/src/main/kotlin/xyz/brysonsteck/ServerCraft/controllers/InfoController.kt
@@ -4,12 +4,18 @@ import javafx.fxml.FXML
import javafx.application.Platform
import javafx.scene.Node
import javafx.scene.control.Hyperlink
+import javafx.scene.control.Label
import javafx.stage.Stage
import javafx.event.ActionEvent
import java.awt.Desktop
import java.net.URI
+import java.util.Properties
+import xyz.brysonsteck.ServerCraft.App
class InfoController {
+ @FXML
+ lateinit private var version: Label
+
private val emails = mapOf(
"bryson" to "me@brysonsteck.xyz"
)
@@ -20,6 +26,13 @@ class InfoController {
private val license = "https://www.gnu.org/licenses/gpl-3.0.html"
@FXML
+ public fun initialize() {
+ val props = Properties()
+ props.load(App().javaClass.getResourceAsStream("info.properties"))
+ version.text += props.getProperty("version")
+ }
+
+ @FXML
private fun openHyperlink(e: ActionEvent) {
val link = e.source as Hyperlink
link.isVisited = false
@@ -52,7 +65,6 @@ class InfoController {
}
}
split[0].equals("license") -> {
- println("license")
if (!os.contains("linux")) {
desktop.browse(URI(license))
} else {
diff --git a/src/main/kotlin/xyz/brysonsteck/ServerCraft/server/Download.kt b/src/main/kotlin/xyz/brysonsteck/ServerCraft/server/Download.kt
index f538458..14606f6 100644
--- a/src/main/kotlin/xyz/brysonsteck/ServerCraft/server/Download.kt
+++ b/src/main/kotlin/xyz/brysonsteck/ServerCraft/server/Download.kt
@@ -54,14 +54,12 @@ class Download: Runnable {
// Make sure response code is in the 200 range.
if (connection.responseCode / 100 != 2) {
- println(connection.responseCode)
status = Status.ERROR
}
// Check for valid content length.
contentLength = connection.getContentLength();
if (contentLength < 1) {
- println(connection.getContentLength())
status = Status.ERROR
}
diff --git a/src/main/resources/xyz/brysonsteck/ServerCraft/info.fxml b/src/main/resources/xyz/brysonsteck/ServerCraft/info.fxml
index a4d561a..d003ba8 100644
--- a/src/main/resources/xyz/brysonsteck/ServerCraft/info.fxml
+++ b/src/main/resources/xyz/brysonsteck/ServerCraft/info.fxml
@@ -27,7 +27,7 @@
<Font name="System Bold" size="28.0" />
</font>
</Label>
- <Label layoutX="146.0" layoutY="82.0" text="Version 1.0" />
+ <Label fx:id="version" layoutX="146.0" layoutY="82.0" text="Version " />
<ButtonBar layoutY="318.0" prefHeight="40.0" prefWidth="398.0">
<buttons>
<Button mnemonicParsing="false" onAction="#closeInfo" text="Close" />