aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStewart Stewart <stewinsalot@gmail.com>2016-09-09 14:11:23 -0400
committerStewart Stewart <stewinsalot@gmail.com>2016-09-09 14:11:30 -0400
commitf8d9124bbffab3f3b020a90482fe9a7207159631 (patch)
treea74cb5492a5a63fea9eabd4310854d9124fccd06
parent4781069565f4edc94e68c14ba4fe716a0f7ef166 (diff)
downloadslick-codegen-plugin-f8d9124bbffab3f3b020a90482fe9a7207159631.tar.gz
slick-codegen-plugin-f8d9124bbffab3f3b020a90482fe9a7207159631.tar.bz2
slick-codegen-plugin-f8d9124bbffab3f3b020a90482fe9a7207159631.zip
Consolidate codegen file config to sbt Setting keys
-rw-r--r--src/main/scala/CodegenPlugin.scala11
-rw-r--r--src/main/scala/NamespacedCodegen.scala10
2 files changed, 6 insertions, 15 deletions
diff --git a/src/main/scala/CodegenPlugin.scala b/src/main/scala/CodegenPlugin.scala
index 1ed057d..f8b039a 100644
--- a/src/main/scala/CodegenPlugin.scala
+++ b/src/main/scala/CodegenPlugin.scala
@@ -6,19 +6,18 @@ object CodegenPlugin extends AutoPlugin {
override def requires = sbt.plugins.JvmPlugin
object autoImport {
lazy val genTables = TaskKey[Seq[File]]("gen-tables")
+ lazy val pkg = SettingKey[String]("package in which to place generated code")
+ lazy val tablesFilename = SettingKey[String]("path for slick table models")
+ lazy val rowsFilename = SettingKey[String]("path for row case classes")
lazy val slickCodeGenTask = Def.task {
- val pkg = "dbmodels"
- val outputDir = (baseDirectory.value / "app" / pkg).getPath
- val fname = outputDir + "/Tables.scala"
- val typesfname = (file("shared") / "src" / "main" / "scala" / pkg / "rows" / "TableTypes.scala").getPath
val schemas = "patients,portal,work_queues,confidential,case_accessioning,samples.samples,samples.subsamples,samples.shipment_preps,samples.collection_methods,experiments.experiments,experiments.exp_types,experiments.somatic_snvs_indels_filtered,samples.basic_diagnosis,samples.molecular_tests,samples.sample_pathology,samples.path_molecular_tests"
val uri = new java.net.URI("file:src/main/resources/application.conf#slick.db.default")
- codegen.NamespacedCodegen.run(uri, Some(outputDir), fname, typesfname, schemas)
+ codegen.NamespacedCodegen.run(uri, pkg.value, tablesFilename.value, rowsFilename.value, schemas)
- Seq(file(fname))
+ Seq(file(tablesFilename.value), file(rowsFilename.value))
}
}
}
diff --git a/src/main/scala/NamespacedCodegen.scala b/src/main/scala/NamespacedCodegen.scala
index 1069c68..ca9897e 100644
--- a/src/main/scala/NamespacedCodegen.scala
+++ b/src/main/scala/NamespacedCodegen.scala
@@ -80,22 +80,14 @@ object NamespacedCodegen {
def run(
uri: URI,
- outputDir: Option[String],
+ pkg: String,
filename: String,
typesFilename: String,
schemaList: String
): Unit = {
val dc = DatabaseConfig.forURI[JdbcProfile](uri)
- val pkg = dc.config.getString("codegen.package")
- val out = outputDir.getOrElse(dc.config.getStringOr("codegen.outputDir", "."))
val slickDriver = if(dc.driverIsObject) dc.driverName else "new " + dc.driverName
- // The following three parameters are unique to our code generator
- // TODO: Decide: Put these in Typsafe Config or make it part of plugin interface?
- // val filename = dc.config.getString("codegen.filename")
- // val typesFilename = dc.config.getString("codegen.typesFilename")
- // val schemaList = dc.config.getString("codegen.schemaList")
-
val mappedSchemas = parseSchemaList(schemaList)
val dbModel = Await.result(dc.db.run(createFilteredModel(dc.driver, mappedSchemas)), Duration.Inf)
//finally dc.db.close