2024-03-08 18:44:24 +01:00
|
|
|
package fr.acinq.lightning.bin
|
|
|
|
|
|
|
|
import app.cash.sqldelight.db.SqlDriver
|
|
|
|
import app.cash.sqldelight.driver.native.NativeSqliteDriver
|
2024-03-24 23:32:34 +01:00
|
|
|
import fr.acinq.lightning.bin.conf.EnvVars.PHOENIX_DATADIR
|
2024-03-18 17:21:03 +01:00
|
|
|
import fr.acinq.phoenix.db.PhoenixDatabase
|
2024-03-21 11:47:37 +01:00
|
|
|
import fr.acinq.bitcoin.Chain
|
|
|
|
import fr.acinq.bitcoin.PublicKey
|
2024-03-08 18:44:24 +01:00
|
|
|
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)
|
2024-03-24 23:32:34 +01:00
|
|
|
actual val datadir: Path = setenv("KTOR_LOG_LEVEL", "WARN", 1)
|
|
|
|
.let {
|
|
|
|
getenv(PHOENIX_DATADIR)?.toKString()?.toPath() ?: getenv("HOME")?.toKString()!!.toPath().div(".phoenix") }
|
2024-03-08 18:44:24 +01:00
|
|
|
|
2024-03-21 11:47:37 +01:00
|
|
|
actual fun createAppDbDriver(dir: Path, chain: Chain, nodeId: PublicKey): SqlDriver {
|
|
|
|
return NativeSqliteDriver(PhoenixDatabase.Schema, "phoenix.${chain.name.lowercase()}.${nodeId.toHex().take(6)}.db",
|
2024-03-08 18:44:24 +01:00
|
|
|
onConfiguration = { it.copy(extendedConfig = it.extendedConfig.copy(basePath = dir.toString())) }
|
|
|
|
)
|
|
|
|
}
|