mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 02:18:26 +00:00
Initial application stub
This commit is contained in:
36
modules/store/src/main/scala/docspell/store/JdbcConfig.scala
Normal file
36
modules/store/src/main/scala/docspell/store/JdbcConfig.scala
Normal file
@ -0,0 +1,36 @@
|
||||
package docspell.store
|
||||
|
||||
case class JdbcConfig(url: String
|
||||
, user: String
|
||||
, password: String
|
||||
) {
|
||||
|
||||
val dbmsName: Option[String] =
|
||||
JdbcConfig.extractDbmsName(url)
|
||||
|
||||
def driverClass =
|
||||
dbmsName match {
|
||||
case Some("mariadb") =>
|
||||
"org.mariadb.jdbc.Driver"
|
||||
case Some("postgresql") =>
|
||||
"org.postgresql.Driver"
|
||||
case Some("h2") =>
|
||||
"org.h2.Driver"
|
||||
case Some("sqlite") =>
|
||||
"org.sqlite.JDBC"
|
||||
case Some(n) =>
|
||||
sys.error(s"Unknown DBMS: $n")
|
||||
case None =>
|
||||
sys.error("No JDBC url specified")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
object JdbcConfig {
|
||||
private[this] val jdbcRegex = "jdbc\\:([^\\:]+)\\:.*".r
|
||||
def extractDbmsName(jdbcUrl: String): Option[String] =
|
||||
jdbcUrl match {
|
||||
case jdbcRegex(n) => Some(n.toLowerCase)
|
||||
case _ => None
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user