Skip to content
This repository has been archived by the owner on Aug 19, 2024. It is now read-only.

Commit

Permalink
Move twirl plumbing into twirl.gradle.
Browse files Browse the repository at this point in the history
  • Loading branch information
marc0der committed May 7, 2018
1 parent 8f22f07 commit b6e5fc4
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 58 deletions.
60 changes: 2 additions & 58 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import play.japi.twirl.compiler.TwirlCompiler

buildscript {
repositories {
maven { url "https://plugins.gradle.org/m2/" }
Expand All @@ -10,29 +8,22 @@ buildscript {
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2'
classpath "com.netflix.nebula:nebula-release-plugin:6.3.3"
classpath "gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.19.2"
classpath 'org.scala-lang:scala-library:2.12.5'
classpath 'org.scala-lang.modules:scala-parser-combinators_2.12:1.1.0'
classpath 'com.typesafe.play:twirl-compiler_2.12:1.3.13'
classpath 'com.typesafe.play:twirl-api_2.12:1.3.13'
}
}

apply plugin: "scala"
apply plugin: "io.ratpack.ratpack-java"
apply plugin: "nebula.release"
apply plugin: "com.palantir.docker"
apply plugin: 'com.github.johnrengelman.shadow'
apply from: "gradle/twirl.gradle"

mainClassName = "io.sdkman.site.SiteMain"
apply plugin: 'com.github.johnrengelman.shadow'

repositories {
jcenter()
}

configurations {
generatedCompile
}

dependencies {
compile 'org.scala-lang:scala-library:2.12.4'
compile ratpack.dependency("guice")
Expand All @@ -48,20 +39,6 @@ dependencies {
testCompile 'org.jvnet.mock-javamail:mock-javamail:1.9'
}

def gensrcDir = "$buildDir/gensrc/scala"

sourceSets {
generated {
scala.srcDir gensrcDir
compileClasspath = configurations.generatedCompile
}
main {
compileClasspath += sourceSets.generated.output
}
test {
compileClasspath += sourceSets.generated.output
}
}

docker {
name 'sdkman/sdkman-website'
Expand All @@ -70,36 +47,3 @@ docker {
files tasks.shadowJar.outputs
dependsOn shadowJar
}

def compileTemplate(File template, File sourceDir, File gensrcDir) {
TwirlCompiler.compile(
template,
file(sourceDir),
file(gensrcDir),
"play.twirl.api.HtmlFormat",
["io.sdkman.repos.Candidate", "play.twirl.api.Html"],
new ArrayList<String>())
}

task prepareTemplates() {
doLast {
def sourceDir = file("src/main/twirl")
["", "includes/"].each { folder ->
file("$sourceDir/$folder").listFiles().findAll { !it.directory }.each { File template ->
println("Compiling template: ${template.name}: $sourceDir/$folder -> $gensrcDir/")
compileTemplate(template, file("$sourceDir/$folder"), file(gensrcDir))
}
}
}
}

compileGeneratedScala {
dependsOn(prepareTemplates)
classpath = configurations.compile
}

compileScala {
dependsOn(compileGeneratedScala)
source += sourceSets.generated.scala
}

63 changes: 63 additions & 0 deletions gradle/twirl.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import play.japi.twirl.compiler.TwirlCompiler

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.scala-lang:scala-library:2.12.5'
classpath 'org.scala-lang.modules:scala-parser-combinators_2.12:1.1.0'
classpath 'com.typesafe.play:twirl-compiler_2.12:1.3.13'
classpath 'com.typesafe.play:twirl-api_2.12:1.3.13'
}
}

configurations {
generatedCompile
}

def gensrcDir = "$buildDir/gensrc/scala"
sourceSets {
generated {
scala.srcDir gensrcDir
compileClasspath = configurations.generatedCompile
}
main {
compileClasspath += sourceSets.generated.output
}
test {
compileClasspath += sourceSets.generated.output
}
}

def compileTemplate(File template, File sourceDir, File gensrcDir) {
TwirlCompiler.compile(
template,
file(sourceDir),
file(gensrcDir),
"play.twirl.api.HtmlFormat",
["io.sdkman.repos.Candidate", "play.twirl.api.Html"],
new ArrayList<String>())
}

task prepareTemplates() {
doLast {
def sourceDir = file("src/main/twirl")
["", "includes/"].each { folder ->
file("$sourceDir/$folder").listFiles().findAll { !it.directory }.each { File template ->
println("Compiling template: ${template.name}: $sourceDir/$folder -> $gensrcDir/")
compileTemplate(template, file("$sourceDir/$folder"), file(gensrcDir))
}
}
}
}

compileGeneratedScala {
dependsOn(prepareTemplates)
classpath = configurations.compile
}

compileScala {
dependsOn(compileGeneratedScala)
source += sourceSets.generated.scala
}

0 comments on commit b6e5fc4

Please sign in to comment.