26 lines
1.0 KiB
Kotlin
26 lines
1.0 KiB
Kotlin
package fr.acinq.lightning.bin
|
|
|
|
import app.cash.sqldelight.db.SqlDriver
|
|
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.bitcoin.Chain
|
|
import fr.acinq.bitcoin.PublicKey
|
|
import kotlinx.cinterop.ExperimentalForeignApi
|
|
import kotlinx.cinterop.toKString
|
|
import okio.Path
|
|
import okio.Path.Companion.toPath
|
|
import platform.posix.getenv
|
|
import platform.posix.setenv
|
|
|
|
@OptIn(ExperimentalForeignApi::class)
|
|
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 {
|
|
return NativeSqliteDriver(PhoenixDatabase.Schema, "phoenix.${chain.name.lowercase()}.${nodeId.toHex().take(6)}.db",
|
|
onConfiguration = { it.copy(extendedConfig = it.extendedConfig.copy(basePath = dir.toString())) }
|
|
)
|
|
}
|