MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / cleanupRuntimeBackup

Function cleanupRuntimeBackup

pkg/go/cmd/codebase-memory-mcp/main.go:1375–1433  ·  view source on GitHub ↗
(
	backup *runtimeBackupTransaction, lock *runtimeSetLock,
)

Source from the content-addressed store, hash-verified

1373}
1374
1375func cleanupRuntimeBackup(
1376 backup *runtimeBackupTransaction, lock *runtimeSetLock,
1377) error {
1378 if err := assertRuntimeSetLockOwner(lock); err != nil {
1379 return err
1380 }
1381 if !backup.cleanupOnly {
1382 if err := createRuntimeBackupMarker(
1383 backup.path, runtimeBackupCleanupOnly,
1384 ); err != nil {
1385 return err
1386 }
1387 backup.cleanupOnly = true
1388 }
1389 names := make([]string, 0, len(backup.files))
1390 for name := range backup.files {
1391 names = append(names, name)
1392 }
1393 sort.Strings(names)
1394 for _, name := range names {
1395 if err := assertRuntimeSetLockOwner(lock); err != nil {
1396 return err
1397 }
1398 member := backup.files[name]
1399 if !pathMatchesSHA256(member.path, member.digest) {
1400 return fmt.Errorf(
1401 "package-cache backup member changed during cleanup: %s", name,
1402 )
1403 }
1404 if err := assertRuntimeSetLockOwner(lock); err != nil {
1405 return err
1406 }
1407 if err := os.Remove(member.path); err != nil {
1408 return err
1409 }
1410 if runtimeBackupCrashObserver != nil {
1411 if err := runtimeBackupCrashObserver(
1412 runtimeBackupCleanupRemovedEvent, member.path,
1413 ); err != nil {
1414 return err
1415 }
1416 }
1417 }
1418 if backup.retired {
1419 if err := assertRuntimeSetLockOwner(lock); err != nil {
1420 return err
1421 }
1422 if err := os.Remove(filepath.Join(backup.path, runtimeBackupRetired)); err != nil {
1423 return err
1424 }
1425 }
1426 if err := assertRuntimeSetLockOwner(lock); err != nil {
1427 return err
1428 }
1429 if err := os.Remove(filepath.Join(backup.path, runtimeBackupCleanupOnly)); err != nil {
1430 return err
1431 }
1432 return os.Remove(backup.path)

Calls 3

pathMatchesSHA256Function · 0.85

Tested by

no test coverage detected