package remove import ( "os" "b612.me/apps/b612/gdu/pkg/analyze" "b612.me/apps/b612/gdu/pkg/fs" ) // ItemFromDir removes item from dir func ItemFromDir(dir, item fs.Item) error { err := os.RemoveAll(item.GetPath()) if err != nil { return err } dir.RemoveFile(item) return nil } // EmptyFileFromDir empty file from dir func EmptyFileFromDir(dir, file fs.Item) error { err := os.Truncate(file.GetPath(), 0) if err != nil { return err } cur := dir.(*analyze.Dir) for { cur.Size -= file.GetSize() cur.Usage -= file.GetUsage() if cur.Parent == nil { break } cur = cur.Parent.(*analyze.Dir) } dir.SetFiles(dir.GetFiles().Remove(file)) newFile := &analyze.File{ Name: file.GetName(), Flag: file.GetFlag(), Size: 0, Parent: dir, } dir.AddFile(newFile) return nil }