From f8d9124bbffab3f3b020a90482fe9a7207159631 Mon Sep 17 00:00:00 2001 From: Stewart Stewart Date: Fri, 9 Sep 2016 14:11:23 -0400 Subject: Consolidate codegen file config to sbt Setting keys --- src/main/scala/CodegenPlugin.scala | 11 +++++------ src/main/scala/NamespacedCodegen.scala | 10 +--------- 2 files changed, 6 insertions(+), 15 deletions(-) (limited to 'src') 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 -- cgit v1.2.3