MCPcopy
hub / github.com/wavetermdev/waveterm / CleanupOldBackups

Function CleanupOldBackups

pkg/filebackup/filebackup.go:126–168  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

124}
125
126func CleanupOldBackups() error {
127 backupBaseDir := filepath.Join(wavebase.GetWaveCachesDir(), "waveai-backups")
128
129 if _, err := os.Stat(backupBaseDir); os.IsNotExist(err) {
130 return nil
131 }
132
133 entries, err := os.ReadDir(backupBaseDir)
134 if err != nil {
135 return fmt.Errorf("failed to read backup directory: %w", err)
136 }
137
138 cutoffTime := time.Now().Add(-BackupRetentionPeriod)
139 var removedCount int
140
141 for _, entry := range entries {
142 if !entry.IsDir() {
143 continue
144 }
145
146 dirPath := filepath.Join(backupBaseDir, entry.Name())
147 info, err := entry.Info()
148 if err != nil {
149 log.Printf("failed to get info for backup dir %s: %v\n", entry.Name(), err)
150 continue
151 }
152
153 if info.ModTime().Before(cutoffTime) {
154 err = os.RemoveAll(dirPath)
155 if err != nil {
156 log.Printf("failed to remove old backup dir %s: %v\n", entry.Name(), err)
157 } else {
158 removedCount++
159 }
160 }
161 }
162
163 if removedCount > 0 {
164 log.Printf("cleaned up %d old backup directories\n", removedCount)
165 }
166
167 return nil
168}

Callers 1

backupCleanupLoopFunction · 0.92

Calls 6

GetWaveCachesDirFunction · 0.92
StatMethod · 0.80
InfoMethod · 0.80
ModTimeMethod · 0.80
IsDirMethod · 0.45
NameMethod · 0.45

Tested by

no test coverage detected