diff --git a/tasks/standard/Sync.scala b/tasks/standard/Sync.scala deleted file mode 100644 index 2dde1cb38..000000000 --- a/tasks/standard/Sync.scala +++ /dev/null @@ -1,59 +0,0 @@ -package xsbt - - import java.io.File - import scala.reflect.Manifest - import Task._ - -object SyncDirs -{ - def sources(inputDirectory: Task[File], outputDirectory: Task[File]) = - { - import Paths._ - (inputDirectory, outputDirectory) map { (in, out) => - FileUtilities.assertDirectories(in, out) - (in ***) x FileMapper.rebase(in, out) - } - } - def apply(cacheDirectory: File)(inputDirectory: Task[File], outputDirectory: Task[File]): Sync = - Sync(cacheDirectory)(sources(inputDirectory, outputDirectory)) - def apply(cacheDirectory: File, inputStyle: FilesInfo.Style, outputStyle: FilesInfo.Style)(inputDirectory: Task[File], outputDirectory: Task[File]): Sync = - Sync(cacheDirectory, inputStyle, outputStyle)(sources(inputDirectory, outputDirectory)) -} -object Sync -{ - def apply(cacheDirectory: File)(sources: Task[Iterable[(File,File)]]): Sync = - apply(cacheDirectory, FilesInfo.hash, FilesInfo.lastModified)(sources) - def apply(cacheDirectory: File, inputStyle: FilesInfo.Style, outputStyle: FilesInfo.Style)(sources: Task[Iterable[(File,File)]]): Sync = - new Sync(cacheDirectory, inputStyle, outputStyle)(sources) -} -class Sync(val cacheDirectory: File, val inputStyle: FilesInfo.Style, val outputStyle: FilesInfo.Style)(val sources: Task[Iterable[(File,File)]]) extends TrackedTaskDefinition[Set[File]] -{ - private val invalidation = InvalidateFiles(cacheDirectory) - private val changedInputs = Difference.inputs(extract(_._1), inputStyle, cacheFile("inputs")) - private val changedOutputs = Difference.outputs(extract(_._2), outputStyle, cacheFile("outputs")) - private def extract(f: ((File,File)) => File) = sources.map(Set() ++ _.map(f)) - - val tracked = Seq(changedOutputs, changedInputs, invalidation) - - lazy val task = - sources bind { srcs => - val sourcesTargets = srcs.toSeq - changedInputs { inputChanges => - changedOutputs { outputChanges => - invalidation(inputChanges +++ outputChanges) { (report, tracking) => - Task - { - val invalidInputs = report.invalid ** inputChanges.checked - val invalidOutputs = report.invalid ** outputChanges.checked - for((source,target) <- sourcesTargets if invalidInputs(source) ||invalidOutputs(target) ) - { - FileUtilities.copyFile(source, target) - tracking.product(source, target) - } - Set( outputChanges.checked.toSeq : _*) - } - } - } - } - } -} \ No newline at end of file diff --git a/tasks/standard/TaskDefinition.scala b/tasks/standard/TaskDefinition.scala deleted file mode 100644 index 2eec9d487..000000000 --- a/tasks/standard/TaskDefinition.scala +++ /dev/null @@ -1,24 +0,0 @@ -/* sbt -- Simple Build Tool - * Copyright 2009, 2010 Mark Harrah - */ -package xsbt - -import java.io.File - -trait TaskDefinition[T] -{ - val task: Task[T] - val clean: Task[Unit] -} -trait TrackedTaskDefinition[T] extends TaskDefinition[T] with WithCache -{ - val tracked: Seq[Tracked] - lazy val clean: Task[Unit] = onTracked(_.clean).bind( u => onTracked(_.clear) ) - import Task._ - private def onTracked(f: Tracked => Task[Unit]) = tracked.forkTasks(f).joinIgnore -} -trait WithCache -{ - def cacheDirectory: File - def cacheFile(relative: String) = new File(cacheDirectory, relative) -} \ No newline at end of file diff --git a/tasks/standard/src/test/scala/SyncTest.scala b/tasks/standard/src/test/scala/SyncTest.scala deleted file mode 100644 index 4ba02fda9..000000000 --- a/tasks/standard/src/test/scala/SyncTest.scala +++ /dev/null @@ -1,56 +0,0 @@ -package xsbt - -import FileUtilities.{read, withTemporaryDirectory => temp, write} - -object SyncTest -{ - import Paths._ - def apply(content: String) - { - try { test(content) } - catch { case e: TasksFailed => e.failures.foreach(_.exception.printStackTrace) } - } - def test(content: String) - { - temp { fromDir => temp { toDir => temp { cacheDir => - val from = fromDir / "test" - val to = toDir / "test-2" - write(from, content) - val sync = Sync(cacheDir)( Task( (from, to) :: Nil )) - val result = TaskRunner(sync.task) - println(result + " ::: " +read(to) + "\n\n") - to.delete - val result2 = TaskRunner(sync.task) - println(result2 + " ::: " +read(to) + "\n\n") - write(from, content.reverse) - TaskRunner(sync.clean) - println(from.exists + " " + fromDir.exists + " " + to.exists + " " + toDir.exists) - } } } - } -} -object CompileTest -{ - def apply(dir: String, scalaVersion: String, options: Seq[String]) - { - def test() - { - import Paths._ - import GlobFilter._ - val base = new java.io.File(dir) - val sources = Task(((base / "src" / "main" / "scala") ** "*.scala") ++ (base * "*.scala")) - val classpath = Task( dir / "lib" * "*.jar" ) - WithCompiler(scalaVersion) { (compiler, log) => - temp { cacheDir => temp { outDir => - val compile = AggressiveCompile(sources, classpath, Task(outDir), Task(options), cacheDir, Task(compiler), log) - println("Result: " + TaskRunner(compile.task)) - println("Result: " + TaskRunner(compile.task)) - TaskRunner(compile.clean) - println("Result: " + TaskRunner(compile.task)) - println("Result: " + TaskRunner(compile.task)) - } } - } - } - try { test() } - catch { case e: TasksFailed => e.failures.foreach(_.exception.printStackTrace); case e: Exception => e.printStackTrace } - } -} \ No newline at end of file