mirror of https://github.com/sbt/sbt.git
25 lines
701 B
Scala
25 lines
701 B
Scala
package sbt
|
|
|
|
import java.io.File
|
|
import IO.{withTemporaryDirectory, write}
|
|
|
|
object WithFiles
|
|
{
|
|
/** Takes the relative path -> content pairs and writes the content to a file in a temporary directory. The written file
|
|
* path is the relative path resolved against the temporary directory path. The provided function is called with the resolved file paths
|
|
* in the same order as the inputs. */
|
|
def apply[T](sources: (File, String)*)(f: Seq[File] => T): T =
|
|
{
|
|
withTemporaryDirectory { dir =>
|
|
val sourceFiles =
|
|
for((file, content) <- sources) yield
|
|
{
|
|
assert(!file.isAbsolute)
|
|
val to = new File(dir, file.getPath)
|
|
write(to, content)
|
|
to
|
|
}
|
|
f(sourceFiles)
|
|
}
|
|
}
|
|
} |