Add version in log, command and api

A task has been added to generate a BuildVersions file
when building the project. Project's version can be
found in that file at runtime.

Also centralized declaration of the dependencies
versions to buildSrc.
This commit is contained in:
Dominique Padiou
2024-03-20 16:01:45 +01:00
parent 6bffd418e8
commit 9d460eeee5
7 changed files with 77 additions and 14 deletions

View File

@@ -6,6 +6,7 @@ import fr.acinq.bitcoin.ByteVector32
import fr.acinq.bitcoin.Script
import fr.acinq.bitcoin.utils.Either
import fr.acinq.bitcoin.utils.toEither
import fr.acinq.lightning.BuildVersions
import fr.acinq.lightning.Lightning.randomBytes32
import fr.acinq.lightning.NodeParams
import fr.acinq.lightning.bin.db.SqlitePaymentsDb
@@ -78,6 +79,7 @@ class Api(private val nodeParams: NodeParams, private val peer: Peer, private va
authenticate {
get("getinfo") {
val info = NodeInfo(
version = BuildVersions.phoenixdVersion,
nodeId = nodeParams.nodeId,
channels = peer.channels.values.map { Channel.from(it) }
)

View File

@@ -21,6 +21,7 @@ import com.github.ajalt.mordant.rendering.TextColors.*
import com.github.ajalt.mordant.rendering.TextStyles.bold
import com.github.ajalt.mordant.rendering.TextStyles.underline
import fr.acinq.bitcoin.Chain
import fr.acinq.lightning.BuildVersions
import fr.acinq.lightning.Lightning.randomBytes32
import fr.acinq.lightning.LiquidityEvents
import fr.acinq.lightning.NodeParams
@@ -64,7 +65,9 @@ import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds
fun main(args: Array<String>) = Phoenixd().main(args)
fun main(args: Array<String>) = Phoenixd()
.versionOption(BuildVersions.phoenixdVersion, names = setOf("--version", "-v"))
.main(args)
class LiquidityOptions : OptionGroup(name = "Liquidity Options") {
val autoLiquidity by option("--auto-liquidity", help = "Amount automatically requested when inbound liquidity is needed").choice(
@@ -198,6 +201,8 @@ class Phoenixd : CliktCommand() {
}
}
consoleLog(cyan("version: ${BuildVersions.phoenixdVersion}"))
consoleLog(cyan("lightning-kmp: ${BuildVersions.lightningKmpVersion}"))
consoleLog(cyan("datadir: ${FileSystem.SYSTEM.canonicalize(datadir)}"))
consoleLog(cyan("chain: $chain"))
consoleLog(cyan("autoLiquidity: ${liquidityOptions.autoLiquidity}"))

View File

@@ -57,6 +57,7 @@ sealed class ApiType {
@Serializable
data class NodeInfo(
val version: String,
val nodeId: PublicKey,
val channels: List<Channel>
)

View File

@@ -12,6 +12,7 @@ import com.github.ajalt.clikt.sources.MapValueSource
import fr.acinq.bitcoin.Base58Check
import fr.acinq.bitcoin.Bech32
import fr.acinq.bitcoin.ByteVector32
import fr.acinq.lightning.BuildVersions
import fr.acinq.lightning.bin.conf.readConfFile
import fr.acinq.lightning.bin.homeDirectory
import fr.acinq.lightning.payment.Bolt11Invoice
@@ -26,11 +27,13 @@ import io.ktor.client.statement.*
import io.ktor.http.*
import io.ktor.serialization.kotlinx.json.*
import io.ktor.server.util.*
import io.ktor.util.*
import kotlinx.coroutines.runBlocking
import kotlinx.serialization.json.Json
fun main(args: Array<String>) =
PhoenixCli()
.versionOption(BuildVersions.phoenixdVersion, names = setOf("--version", "-v"))
.subcommands(GetInfo(), GetBalance(), ListChannels(), GetOutgoingPayment(), GetIncomingPayment(), ListIncomingPayments(), CreateInvoice(), PayInvoice(), SendToAddress(), CloseChannel())
.main(args)