experimental/deletes.go (40 lines of code) (raw):

package experimental import ( "path/filepath" "sync/atomic" "github.com/Sirupsen/logrus" "github.com/dustin/go-humanize" ) var ( deletedLinks int32 deletedBlobs int32 deletedOther int32 deletedBlobSize int64 ) func deleteFile(path string, size int64) error { logrus.Infoln("DELETE", path, size) name := filepath.Base(path) if name == "link" { atomic.AddInt32(&deletedLinks, 1) } else if name == "data" { atomic.AddInt32(&deletedBlobs, 1) } else { atomic.AddInt32(&deletedOther, 1) } atomic.AddInt64(&deletedBlobSize, size) if !*delete { // Do not delete, only write return nil } if *softDelete { return currentStorage.Move(path, filepath.Join("backup", path)) } else { return currentStorage.Delete(path) } } func deletesInfo() { logrus.Warningln("DELETEABLE INFO:", deletedLinks, "links,", deletedBlobs, "blobs,", deletedOther, "other,", humanize.Bytes(uint64(deletedBlobSize)), ) }