optionnally set datadir with env var
ex: `PHOENIX_DATADIR=/my/phoenix/dir ./phoenixd`
This commit is contained in:
parent
029bd7c162
commit
0432da38e5
@ -5,6 +5,6 @@ import fr.acinq.bitcoin.Chain
|
|||||||
import fr.acinq.bitcoin.PublicKey
|
import fr.acinq.bitcoin.PublicKey
|
||||||
import okio.Path
|
import okio.Path
|
||||||
|
|
||||||
expect val homeDirectory: Path
|
expect val datadir: Path
|
||||||
|
|
||||||
expect fun createAppDbDriver(dir: Path, chain: Chain, nodeId: PublicKey): SqlDriver
|
expect fun createAppDbDriver(dir: Path, chain: Chain, nodeId: PublicKey): SqlDriver
|
||||||
|
@ -68,8 +68,6 @@ fun main(args: Array<String>) = Phoenixd()
|
|||||||
.main(args)
|
.main(args)
|
||||||
|
|
||||||
class Phoenixd : CliktCommand() {
|
class Phoenixd : CliktCommand() {
|
||||||
//private val datadir by option("--datadir", help = "Data directory").convert { it.toPath() }.default(homeDirectory / ".phoenix", defaultForHelp = "~/.phoenix")
|
|
||||||
private val datadir = homeDirectory / ".phoenix"
|
|
||||||
private val confFile = datadir / "phoenix.conf"
|
private val confFile = datadir / "phoenix.conf"
|
||||||
private val chain by option("--chain", help = "Bitcoin chain to use").choice(
|
private val chain by option("--chain", help = "Bitcoin chain to use").choice(
|
||||||
"mainnet" to Chain.Mainnet, "testnet" to Chain.Testnet
|
"mainnet" to Chain.Mainnet, "testnet" to Chain.Testnet
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
package fr.acinq.lightning.bin.conf
|
||||||
|
|
||||||
|
object EnvVars {
|
||||||
|
const val PHOENIX_DATADIR = "PHOENIX_DATADIR"
|
||||||
|
}
|
@ -14,7 +14,7 @@ import fr.acinq.bitcoin.Bech32
|
|||||||
import fr.acinq.bitcoin.ByteVector32
|
import fr.acinq.bitcoin.ByteVector32
|
||||||
import fr.acinq.lightning.BuildVersions
|
import fr.acinq.lightning.BuildVersions
|
||||||
import fr.acinq.lightning.bin.conf.readConfFile
|
import fr.acinq.lightning.bin.conf.readConfFile
|
||||||
import fr.acinq.lightning.bin.homeDirectory
|
import fr.acinq.lightning.bin.datadir
|
||||||
import fr.acinq.lightning.payment.Bolt11Invoice
|
import fr.acinq.lightning.payment.Bolt11Invoice
|
||||||
import fr.acinq.lightning.utils.UUID
|
import fr.acinq.lightning.utils.UUID
|
||||||
import io.ktor.client.*
|
import io.ktor.client.*
|
||||||
@ -40,7 +40,6 @@ fun main(args: Array<String>) =
|
|||||||
data class HttpConf(val baseUrl: Url, val httpClient: HttpClient)
|
data class HttpConf(val baseUrl: Url, val httpClient: HttpClient)
|
||||||
|
|
||||||
class PhoenixCli : CliktCommand() {
|
class PhoenixCli : CliktCommand() {
|
||||||
private val datadir = homeDirectory / ".phoenix"
|
|
||||||
private val confFile = datadir / "phoenix.conf"
|
private val confFile = datadir / "phoenix.conf"
|
||||||
|
|
||||||
private val httpBindIp by option("--http-bind-ip", help = "Bind ip for the http api").default("127.0.0.1")
|
private val httpBindIp by option("--http-bind-ip", help = "Bind ip for the http api").default("127.0.0.1")
|
||||||
@ -110,7 +109,7 @@ class GetBalance : PhoenixCliCommand(name = "getbalance", help = "Returns your c
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ListChannels : PhoenixCliCommand(name = "listchannels", help = "List all channels") {
|
class ListChannels : PhoenixCliCommand(name = "listchannels", help = "List all channels") {
|
||||||
override suspend fun httpRequest() = commonOptions.httpClient.get(
|
override suspend fun httpRequest() = commonOptions.httpClient.get(
|
||||||
url = commonOptions.baseUrl / "listchannels"
|
url = commonOptions.baseUrl / "listchannels"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -4,11 +4,12 @@ import app.cash.sqldelight.db.SqlDriver
|
|||||||
import app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteDriver
|
import app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteDriver
|
||||||
import fr.acinq.bitcoin.Chain
|
import fr.acinq.bitcoin.Chain
|
||||||
import fr.acinq.bitcoin.PublicKey
|
import fr.acinq.bitcoin.PublicKey
|
||||||
|
import fr.acinq.lightning.bin.conf.EnvVars.PHOENIX_DATADIR
|
||||||
import fr.acinq.phoenix.db.PhoenixDatabase
|
import fr.acinq.phoenix.db.PhoenixDatabase
|
||||||
import okio.Path
|
import okio.Path
|
||||||
import okio.Path.Companion.toPath
|
import okio.Path.Companion.toPath
|
||||||
|
|
||||||
actual val homeDirectory: Path = System.getProperty("user.home").toPath()
|
actual val datadir: Path = (System.getenv()[PHOENIX_DATADIR]?.toPath() ?: System.getProperty("user.home").toPath().div(".phoenix"))
|
||||||
|
|
||||||
actual fun createAppDbDriver(dir: Path, chain: Chain, nodeId: PublicKey): SqlDriver {
|
actual fun createAppDbDriver(dir: Path, chain: Chain, nodeId: PublicKey): SqlDriver {
|
||||||
val path = dir / "phoenix.${chain.name.lowercase()}.${nodeId.toHex().take(6)}.db"
|
val path = dir / "phoenix.${chain.name.lowercase()}.${nodeId.toHex().take(6)}.db"
|
||||||
|
@ -2,6 +2,7 @@ package fr.acinq.lightning.bin
|
|||||||
|
|
||||||
import app.cash.sqldelight.db.SqlDriver
|
import app.cash.sqldelight.db.SqlDriver
|
||||||
import app.cash.sqldelight.driver.native.NativeSqliteDriver
|
import app.cash.sqldelight.driver.native.NativeSqliteDriver
|
||||||
|
import fr.acinq.lightning.bin.conf.EnvVars.PHOENIX_DATADIR
|
||||||
import fr.acinq.phoenix.db.PhoenixDatabase
|
import fr.acinq.phoenix.db.PhoenixDatabase
|
||||||
import fr.acinq.bitcoin.Chain
|
import fr.acinq.bitcoin.Chain
|
||||||
import fr.acinq.bitcoin.PublicKey
|
import fr.acinq.bitcoin.PublicKey
|
||||||
@ -13,7 +14,9 @@ import platform.posix.getenv
|
|||||||
import platform.posix.setenv
|
import platform.posix.setenv
|
||||||
|
|
||||||
@OptIn(ExperimentalForeignApi::class)
|
@OptIn(ExperimentalForeignApi::class)
|
||||||
actual val homeDirectory: Path = setenv("KTOR_LOG_LEVEL", "WARN", 1).let { getenv("HOME")?.toKString()!!.toPath() }
|
actual val datadir: Path = setenv("KTOR_LOG_LEVEL", "WARN", 1)
|
||||||
|
.let {
|
||||||
|
getenv(PHOENIX_DATADIR)?.toKString()?.toPath() ?: getenv("HOME")?.toKString()!!.toPath().div(".phoenix") }
|
||||||
|
|
||||||
actual fun createAppDbDriver(dir: Path, chain: Chain, nodeId: PublicKey): SqlDriver {
|
actual fun createAppDbDriver(dir: Path, chain: Chain, nodeId: PublicKey): SqlDriver {
|
||||||
return NativeSqliteDriver(PhoenixDatabase.Schema, "phoenix.${chain.name.lowercase()}.${nodeId.toHex().take(6)}.db",
|
return NativeSqliteDriver(PhoenixDatabase.Schema, "phoenix.${chain.name.lowercase()}.${nodeId.toHex().take(6)}.db",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user