diff options
Diffstat (limited to 'src/main/scala/CodegenPlugin.scala')
-rw-r--r-- | src/main/scala/CodegenPlugin.scala | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/main/scala/CodegenPlugin.scala b/src/main/scala/CodegenPlugin.scala index 55d4089..c90fe66 100644 --- a/src/main/scala/CodegenPlugin.scala +++ b/src/main/scala/CodegenPlugin.scala @@ -46,6 +46,10 @@ object CodegenPlugin extends AutoPlugin { "codegen-type-replacements", "A map of types to find and replace" ) + lazy val codegenHeader = SettingKey[String]( + "codegen-header", + "Comments that go at the top of generated files; notices and tooling directives." + ) lazy val slickCodeGenTask = TaskKey[Unit]("gen-tables", "generate the table definitions") @@ -58,6 +62,7 @@ object CodegenPlugin extends AutoPlugin { codegenIdType := Option.empty, codegenSchemaImports := List.empty, codegenTypeReplacements := Map.empty, + codegenHeader := "AUTO-GENERATED Slick data model", slickCodeGenTask := Def.taskDyn { Def.task { codegenDatabaseConfigs.value.foreach { @@ -67,15 +72,17 @@ object CodegenPlugin extends AutoPlugin { config.outputPackage, Some(config.schemaWhitelist).filter(_.nonEmpty), config.outputPath, - config.foreignKeys, - (if (codegenIdType.value.isEmpty) - codegenSchemaBaseClassParts.value :+ "DefaultIdTypeMapper" - else - codegenSchemaBaseClassParts.value) match { - case Nil => "AnyRef" - case parts => parts.mkString(" with ") + config.foreignKeys, { + val parts = + (if (codegenIdType.value.isEmpty) + codegenSchemaBaseClassParts.value :+ "DefaultIdTypeMapper" + else + codegenSchemaBaseClassParts.value) + + Some(parts).filter(_.nonEmpty).map(_.mkString(" with ")) }, codegenIdType.value, + codegenHeader.value, codegenSchemaImports.value, codegenTypeReplacements.value ) |