2016-02-23 12:58:39 +01:00
|
|
|
/**
|
|
|
|
|
* Copyright (C) 2016 Lightbend Inc. <http://www.lightbend.com>
|
|
|
|
|
*/
|
2013-12-04 12:12:38 +01:00
|
|
|
package akka
|
|
|
|
|
|
|
|
|
|
import sbt._
|
|
|
|
|
import sbt.Keys._
|
2014-03-17 22:06:19 +01:00
|
|
|
import sbt.Def.Initialize
|
2013-12-04 12:12:38 +01:00
|
|
|
import java.io.File
|
2014-03-17 22:06:19 +01:00
|
|
|
import sbt.Task
|
2013-12-04 12:12:38 +01:00
|
|
|
|
|
|
|
|
object ActivatorDist {
|
|
|
|
|
|
|
|
|
|
val activatorDistDirectory = SettingKey[File]("activator-dist-directory")
|
|
|
|
|
val activatorDist = TaskKey[File]("activator-dist", "Create a zipped distribution of each activator sample.")
|
|
|
|
|
|
|
|
|
|
lazy val settings: Seq[Setting[_]] = Seq(
|
|
|
|
|
activatorDistDirectory <<= crossTarget / "activator-dist",
|
|
|
|
|
activatorDist <<= activatorDistTask
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def activatorDistTask: Initialize[Task[File]] = {
|
|
|
|
|
(thisProjectRef, baseDirectory, activatorDistDirectory, version, buildStructure, streams) map {
|
|
|
|
|
(project, projectBase, activatorDistDirectory, version, structure, s) => {
|
2014-03-17 22:06:19 +01:00
|
|
|
val directories = projectBase.listFiles(DirectoryFilter).filter(dir => (dir / "activator.properties").exists)
|
2014-05-12 16:19:29 +02:00
|
|
|
val rootGitignoreLines = IO.readLines(AkkaBuild.root.base / ".gitignore")
|
2014-03-17 22:06:19 +01:00
|
|
|
for (dir <- directories) {
|
|
|
|
|
val localGitignoreLines = if ((dir / ".gitignore").exists) IO.readLines(dir / ".gitignore") else Nil
|
|
|
|
|
val gitignoreFileFilter = (".gitignore" :: localGitignoreLines ::: rootGitignoreLines).
|
|
|
|
|
foldLeft[FileFilter](NothingFilter)((acc, x) => acc || x)
|
|
|
|
|
val filteredPathFinder = PathFinder(dir) descendantsExcept("*", gitignoreFileFilter) filter(_.isFile)
|
|
|
|
|
filteredPathFinder pair Path.rebase(dir, activatorDistDirectory / dir.name) map {
|
|
|
|
|
case (source, target) =>
|
|
|
|
|
s.log.info(s"copying: $source -> $target")
|
|
|
|
|
IO.copyFile(source, target, preserveLastModified = true)
|
2013-12-04 12:12:38 +01:00
|
|
|
}
|
2014-03-17 22:06:19 +01:00
|
|
|
val targetDir = activatorDistDirectory / dir.name
|
|
|
|
|
val targetFile = activatorDistDirectory / (dir.name + "-" + version + ".zip")
|
|
|
|
|
s.log.info(s"zipping: $targetDir -> $targetFile")
|
|
|
|
|
Dist.zip(targetDir, targetFile)
|
2013-12-04 12:12:38 +01:00
|
|
|
}
|
2014-05-12 16:19:29 +02:00
|
|
|
|
2013-12-04 12:12:38 +01:00
|
|
|
activatorDistDirectory
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|