diff options
author | Jan Christopher Vogt <oss.nsp@cvogt.org> | 2017-03-12 12:51:59 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-12 12:51:59 -0400 |
commit | 918d158f0ce87c664555d0d624fb3664c7015851 (patch) | |
tree | 2a233f6fc1cdf7dd6a9af6a3533f794ad28ff692 /stage2/BasicBuild.scala | |
parent | dc5ce5caa0ff7ea079d63a0c1990256b854c4370 (diff) | |
parent | 244f86a9cdf19904169456c234a2752f125dd427 (diff) | |
download | cbt-918d158f0ce87c664555d0d624fb3664c7015851.tar.gz cbt-918d158f0ce87c664555d0d624fb3664c7015851.tar.bz2 cbt-918d158f0ce87c664555d0d624fb3664c7015851.zip |
Merge pull request #420 from cvogt/watch-improvements
revamp loop feature
Diffstat (limited to 'stage2/BasicBuild.scala')
-rw-r--r-- | stage2/BasicBuild.scala | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala index 68bda15..bc6f9d9 100644 --- a/stage2/BasicBuild.scala +++ b/stage2/BasicBuild.scala @@ -2,6 +2,7 @@ package cbt import java.io._ import java.net._ +import java.nio.file._ class BasicBuild(final val context: Context) extends BaseBuild trait BaseBuild extends BuildInterface with DependencyImplementation with TriggerLoop with SbtDependencyDsl{ @@ -124,7 +125,11 @@ trait BaseBuild extends BuildInterface with DependencyImplementation with Trigge pathToNestedBuild: _* ) - def triggerLoopFiles: Seq[File] = sources ++ transitiveDependencies.collect{ case b: TriggerLoop => b.triggerLoopFiles }.flatten + def triggerLoopFiles: Set[File] = ( + context.triggerLoopFiles + ++ sources + ++ transitiveDependencies.collect{ case b: TriggerLoop => b.triggerLoopFiles }.flatten + ) def localJars: Seq[File] = Seq(projectDirectory ++ "/lib") @@ -318,4 +323,17 @@ trait BaseBuild extends BuildInterface with DependencyImplementation with Trigge final def crossScalaVersionsArray = Array(scalaVersion) def publish: Seq[URL] = Seq() + + def loop = { + lib.callReflective(this, context.args.headOption, context.copy(args=context.args.drop(1))) + val files = triggerLoopFiles + lib.watch{ () => + logger.loop("Looping change detection over:\n - "++files.mkString("\n - ")) + files + }() + context.loopFile.getParentFile.mkdirs + lib.write( context.loopFile, files.mkString("\n"), StandardOpenOption.CREATE ) + + ExitCode(253) // signal bash script to restart + } } |