aboutsummaryrefslogtreecommitdiff
path: root/stage1
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-02-26 21:44:51 +0800
committerChristopher Vogt <oss.nsp@cvogt.org>2017-02-27 12:27:44 +0800
commit9b9292e809352aabe908bc62a8aa38645eabc203 (patch)
treeb1df14c04f8c62848030f6c871775ada7057672f /stage1
parentf5cb9a92574bb4deea75090e8ccf0f259f622f04 (diff)
downloadcbt-9b9292e809352aabe908bc62a8aa38645eabc203.tar.gz
cbt-9b9292e809352aabe908bc62a8aa38645eabc203.tar.bz2
cbt-9b9292e809352aabe908bc62a8aa38645eabc203.zip
disabled prototype code for deleteRecursive
Diffstat (limited to 'stage1')
-rw-r--r--stage1/cbt.scala18
1 files changed, 17 insertions, 1 deletions
diff --git a/stage1/cbt.scala b/stage1/cbt.scala
index 5d2e2f5..bc0e944 100644
--- a/stage1/cbt.scala
+++ b/stage1/cbt.scala
@@ -28,7 +28,23 @@ object `package`{
def /(s: String): File = new File( file, s )
def parent = lib.realpath(file ++ "/..")
def string = file.toString
-
+ /* recursively deletes folders*/
+ def deleteRecursive: Unit = {
+ val s = file.string
+ // some desperate attempts to keep people from accidentally deleting their hard drive
+ assert( file == file.getCanonicalFile, "deleteRecursive requires previous .getCanonicalFile" )
+ assert( file.isAbsolute, "deleteRecursive requires absolute path" )
+ assert( file.string != "", "deleteRecursive requires non-empty file path" )
+ assert( s.split("/").size > 4, "deleteRecursive requires absolute path of at least depth 4" )
+ assert( s.split("\\").size > 4, "deleteRecursive requires absolute path of at least depth 4" )
+ assert( !listRecursive.exists(_.isHidden), "deleteRecursive requires no files to be hidden" )
+ assert( listRecursive.forall(_.canWrite), "deleteRecursive requires all files to be writable" )
+ if( file.isDirectory ){
+ file.listFiles.map(_.deleteRecursive)
+ }
+ //file.delete
+ }
+
def listRecursive: Seq[File] = {
file +: (
if( file.isDirectory ) file.listFiles.flatMap(_.listRecursive).toVector else Seq[File]()