aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-02-22 17:11:32 +0800
committerChristopher Vogt <oss.nsp@cvogt.org>2017-02-22 17:11:32 +0800
commit66b668b9cdcefcbdb5db1b3e8a0d9adb08b608ff (patch)
treedb6b1ddbfa3aeeeb022de601c663032ac29f7667
parentd88112b8f56c6f7556aa1e62d7cd10e7a02bd620 (diff)
downloadcbt-66b668b9cdcefcbdb5db1b3e8a0d9adb08b608ff.tar.gz
cbt-66b668b9cdcefcbdb5db1b3e8a0d9adb08b608ff.tar.bz2
cbt-66b668b9cdcefcbdb5db1b3e8a0d9adb08b608ff.zip
support cleaning more than just target
-rw-r--r--stage2/BasicBuild.scala4
-rw-r--r--stage2/Lib.scala10
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': ")