Initial application stub

This commit is contained in:
Eike Kettner
2019-07-17 22:03:10 +02:00
commit 6154e6a387
54 changed files with 2447 additions and 0 deletions

View 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
}
}