diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-22 17:11:32 +0800 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2017-02-22 17:11:32 +0800 |
commit | 66b668b9cdcefcbdb5db1b3e8a0d9adb08b608ff (patch) | |
tree | db6b1ddbfa3aeeeb022de601c663032ac29f7667 /stage2 | |
parent | d88112b8f56c6f7556aa1e62d7cd10e7a02bd620 (diff) | |
download | cbt-66b668b9cdcefcbdb5db1b3e8a0d9adb08b608ff.tar.gz cbt-66b668b9cdcefcbdb5db1b3e8a0d9adb08b608ff.tar.bz2 cbt-66b668b9cdcefcbdb5db1b3e8a0d9adb08b608ff.zip |
support cleaning more than just target
Diffstat (limited to 'stage2')
-rw-r--r-- | stage2/BasicBuild.scala | 4 | ||||
-rw-r--r-- | stage2/Lib.scala | 10 |
2 files changed, 8 insertions, 6 deletions
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala index 5c49395..cf0d027 100644 --- a/stage2/BasicBuild.scala +++ b/stage2/BasicBuild.scala @@ -153,9 +153,11 @@ trait BaseBuild extends BuildInterface with DependencyImplementation with Trigge ) } + def cleanFiles: Seq[File] = Seq( target ) + def clean: ExitCode = { lib.clean( - target, + cleanFiles, context.args.contains("force"), context.args.contains("dry-run"), context.args.contains("list"), diff --git a/stage2/Lib.scala b/stage2/Lib.scala index d6047f9..51e7cff 100644 --- a/stage2/Lib.scala +++ b/stage2/Lib.scala @@ -210,7 +210,7 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){ ) } - def clean(target: File, force: Boolean, dryRun: Boolean, list: Boolean, help: Boolean): ExitCode = { + def clean(targets: Seq[File], force: Boolean, dryRun: Boolean, list: Boolean, help: Boolean): ExitCode = { def depthFirstFileStream(file: File): Vector[File] = { ( if (file.isDirectory) { @@ -218,7 +218,7 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){ } else Vector() ) :+ file } - lazy val files = depthFirstFileStream( target ) + lazy val files = targets.filter(_.exists).flatMap( depthFirstFileStream ) if( help ){ System.err.println( s""" @@ -227,8 +227,8 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){ dry-run does not actually delete files """ ) ExitCode.Success - } else if (!target.exists){ - System.err.println( "Nothing to clean. Does not exist: " ++ target.string ) + } else if (files.isEmpty){ + System.err.println( "Nothing to clean." ) ExitCode.Success } else if( list ){ files.map(_.string).foreach( println ) @@ -237,7 +237,7 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){ val performDelete = ( force || { val console = consoleOrFail("Use `cbt direct clean` or `cbt clean help`") - System.err.println("Files to be deleted:\n\n") + System.err.println("Files to be deleted:\n") files.foreach( System.err.println ) System.err.println("") System.err.print("To delete the above files type 'delete': ") |