diff options
author | Christopher Vogt <christopher.vogt@epfl.ch> | 2013-12-23 08:11:12 +0100 |
---|---|---|
committer | Christopher Vogt <christopher.vogt@epfl.ch> | 2013-12-24 18:22:21 +0100 |
commit | c952071e9beb0124360b65b127ab571dd8d9f970 (patch) | |
tree | 48ce3b33000c57649f9a5189964e5ddbe9ccaf48 /project/Build.scala | |
download | slick-codegen-example-2.0.0-RC1.tar.gz slick-codegen-example-2.0.0-RC1.tar.bz2 slick-codegen-example-2.0.0-RC1.zip |
Initial code example2.0.0-RC1
Diffstat (limited to 'project/Build.scala')
-rw-r--r-- | project/Build.scala | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/project/Build.scala b/project/Build.scala new file mode 100644 index 0000000..ec7f527 --- /dev/null +++ b/project/Build.scala @@ -0,0 +1,37 @@ +import sbt._ +import Keys._ +import Tests._ + +/** + * This is a simple sbt setup generating Slick code from the given + * database before compiling the projects code. + */ +object myBuild extends Build { + lazy val mainProject = Project( + id="main", + base=file("."), + settings = Project.defaultSettings ++ Seq( + scalaVersion := "2.10.3", + libraryDependencies ++= List( + "com.typesafe.slick" %% "slick" % "2.0.0-RC1", + "org.slf4j" % "slf4j-nop" % "1.6.4", + "com.h2database" % "h2" % "1.3.166" + ), + slick <<= slickCodeGenTask, // register manual sbt command + sourceGenerators in Compile <+= slickCodeGenTask // register automatic code generation on every compile, remove for only manual use + ) + ) + + // code generation task + lazy val slick = TaskKey[Seq[File]]("gen-tables") + lazy val slickCodeGenTask = (sourceManaged, dependencyClasspath in Compile, runner in Compile, streams) map { (dir, cp, r, s) => + val outputDir = (dir / "slick").getPath // place generated files in sbt's managed sources folder + val url = "jdbc:h2:mem:test;INIT=runscript from 'src/main/sql/create.sql'" // connection info for a pre-populated throw-away, in-memory db for this demo, which is freshly initialized on every run + val jdbcDriver = "org.h2.Driver" + val slickDriver = "scala.slick.driver.H2Driver" + val pkg = "demo" + toError(r.run("scala.slick.model.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg), s.log)) + val fname = outputDir + "/demo/Tables.scala" + Seq(file(fname)) + } +}
\ No newline at end of file |