Make it so optional interface Purge can fail so it can be wrapped

This commit is contained in:
Nick Craig-Wood
2015-11-14 08:08:51 +00:00
parent e9dda25c60
commit 2c2cb84ca7
2 changed files with 8 additions and 1 deletions
+7 -1
View File
@@ -734,14 +734,20 @@ func Rmdir(f Fs) error {
//
// FIXME doesn't delete local directories
func Purge(f Fs) error {
doFallbackPurge := true
var err error
if purger, ok := f.(Purger); ok {
doFallbackPurge = false
if Config.DryRun {
Debug(f, "Not purging as --dry-run set")
} else {
err = purger.Purge()
if err == ErrorCantPurge {
doFallbackPurge = true
}
}
} else {
}
if doFallbackPurge {
// DeleteFiles and Rmdir observe --dry-run
DeleteFiles(f.List())
err = Rmdir(f)