commit 11b48501f8ac52d41510b79c893f5c2af075f07a
parent 4edb7a093380f3909096141a8ac158f5bce0309e
Author: MS <ms@taler.net>
Date: Tue, 19 Jan 2021 18:49:56 +0100
Version file and Sandbox version option
Diffstat:
3 files changed, 37 insertions(+), 7 deletions(-)
diff --git a/build.gradle b/build.gradle
@@ -24,7 +24,16 @@ idea {
setVersion("0.0.1-dev.1")
+task versionFiles() {
+ new File("util/src/main/resources/version.txt").text = getRootProject().version
+}
+
+classes {
+ dependsOn versionFiles
+}
+
task dist(type: Zip) {
+ dependsOn versionFiles
evaluationDependsOn("nexus")
evaluationDependsOn("sandbox")
def topDir = "${getRootProject().name}-${getRootProject().version}"
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
@@ -60,6 +60,7 @@ import com.github.ajalt.clikt.core.context
import com.github.ajalt.clikt.core.subcommands
import com.github.ajalt.clikt.output.CliktHelpFormatter
import com.github.ajalt.clikt.parameters.options.default
+import com.github.ajalt.clikt.parameters.options.flag
import com.github.ajalt.clikt.parameters.options.option
import com.github.ajalt.clikt.parameters.types.int
import execThrowableOrTerminate
@@ -80,6 +81,7 @@ import tech.libeufin.util.ebics_h004.EbicsResponse
import tech.libeufin.util.ebics_h004.EbicsTypes
import java.util.*
import kotlin.random.Random
+import kotlin.system.exitProcess
const val DEFAULT_DB_CONNECTION = "jdbc:sqlite:/tmp/libeufin-sandbox.sqlite3"
@@ -95,10 +97,6 @@ data class SandboxError(val statusCode: HttpStatusCode, val reason: String) : Ex
data class SandboxErrorJson(val error: SandboxErrorDetailJson)
data class SandboxErrorDetailJson(val type: String, val description: String)
-class SandboxCommand : CliktCommand() {
- override fun run() = Unit
-}
-
class ResetTables : CliktCommand("Drop all the tables from the database") {
init {
context {
@@ -193,10 +191,27 @@ fun ensureNonNull(param: String?): String {
)
}
+class SandboxCommand : CliktCommand(invokeWithoutSubcommand = true, printHelpOnEmptyArgs = true) {
+ init {
+ context {
+ helpFormatter = CliktHelpFormatter(showDefaultValues = true)
+ }
+ }
+ private val version by option().flag()
+ override fun run() {
+ if (version) {
+ println(getVersion())
+ exitProcess(0)
+ }
+ if (currentContext.invokedSubcommand == null) {
+ println("Caught you: no command was run")
+ }
+ }
+}
+
+
fun main(args: Array<String>) {
- SandboxCommand()
- .subcommands(Serve(), ResetTables())
- .main(args)
+ SandboxCommand().subcommands(Serve(), ResetTables()).main(args)
}
fun serverMain(dbName: String, port: Int) {
diff --git a/util/src/main/kotlin/Config.kt b/util/src/main/kotlin/Config.kt
@@ -6,6 +6,12 @@ import ch.qos.logback.classic.util.ContextInitializer
import ch.qos.logback.core.util.Loader
import org.slf4j.LoggerFactory
+fun getVersion(): String {
+ return Loader.getResource(
+ "version.txt", ClassLoader.getSystemClassLoader()
+ ).readText()
+}
+
/**
* Set system properties to wanted values, and load logback configuration after.
* While it can set any system property, it is used only to set the log file name.