From d7d924c50758aa190762672723d2b708b18911ba Mon Sep 17 00:00:00 2001 From: Christopher Vogt Date: Sun, 2 Apr 2017 15:08:27 -0400 Subject: Add Tut plugin --- build/build.scala | 1 + examples/tut/Readme.md | 1 + examples/tut/build/build.scala | 3 +++ examples/tut/tut/example.md | 7 +++++++ stage2/plugins/Tut.scala | 38 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 50 insertions(+) create mode 100644 examples/tut/Readme.md create mode 100644 examples/tut/build/build.scala create mode 100644 examples/tut/tut/example.md create mode 100644 stage2/plugins/Tut.scala diff --git a/build/build.scala b/build/build.scala index cf2527a..4635159 100644 --- a/build/build.scala +++ b/build/build.scala @@ -26,6 +26,7 @@ class Build(val context: Context) extends Shared with Scalariform with PublishLo context.cbtHome / "stage2" / "LazyDependency.scala", context.cbtHome / "stage2" / "plugins" / "ScalaTest.scala", context.cbtHome / "stage2" / "plugins" / "Scalatex.scala", + context.cbtHome / "stage2" / "plugins" / "Tut.scala", context.cbtHome / "stage2" / "libraries.scala", context.cbtHome / "stage2" / "plugins.scala", context.cbtHome / "stage2" / "ports.scala" diff --git a/examples/tut/Readme.md b/examples/tut/Readme.md new file mode 100644 index 0000000..27568f0 --- /dev/null +++ b/examples/tut/Readme.md @@ -0,0 +1 @@ +Tut files need to be in tut/. Generated files go to target/tut/. \ No newline at end of file diff --git a/examples/tut/build/build.scala b/examples/tut/build/build.scala new file mode 100644 index 0000000..b9d00c2 --- /dev/null +++ b/examples/tut/build/build.scala @@ -0,0 +1,3 @@ +package tut_build +import cbt._ +class Build(val context: Context) extends Tut diff --git a/examples/tut/tut/example.md b/examples/tut/tut/example.md new file mode 100644 index 0000000..55fa85b --- /dev/null +++ b/examples/tut/tut/example.md @@ -0,0 +1,7 @@ + +This is a tut doc. + +```tut +1 + 1 +``` + diff --git a/stage2/plugins/Tut.scala b/stage2/plugins/Tut.scala new file mode 100644 index 0000000..f2fee14 --- /dev/null +++ b/stage2/plugins/Tut.scala @@ -0,0 +1,38 @@ +package cbt +trait Tut extends BaseBuild { + def tut = Tut.apply( lib, context.cbtLastModified, context.paths.mavenCache, scalaMajorVersion ).config( + projectDirectory / "tut", target / "tut", classpath, scalacOptions + ) +} + +import java.io.File +object Tut { + case class apply( + lib: Lib, cbtLastModified: Long, mavenCache: File, scalaMajorVersion: String + )( + implicit + logger: Logger, transientCache: java.util.Map[AnyRef, AnyRef], classLoaderCache: ClassLoaderCache + ) { + case class config( + sourceDirectory: File, + targetDirectory: File, + classpath: ClassPath, + scalacOptions: Seq[String], + fileExtensionRegex: String = """.*\.(md|txt|htm|html)""", + version: String = "0.4.8" + ) { + def apply = + lib.redirectOutToErr { + tut( version ).runMain( + "tut.TutMain", + Seq( + sourceDirectory.string, targetDirectory.string, fileExtensionRegex, "-cp", classpath.string + ) ++ scalacOptions + ) + } + } + def tut( version: String ) = MavenResolver( cbtLastModified, mavenCache, bintray( "tpolecat" ), mavenCentral ).bindOne( + MavenDependency( "org.tpolecat", "tut-core_" ~ scalaMajorVersion, version ) + ) + } +} -- cgit v1.2.3