fileBackupHook static method

HookRegistration fileBackupHook({
  1. required Future<void> writeBackup(
    1. String path,
    2. String content
    ),
})

Hook that creates backup files before modifications.

Writes a .bak file alongside the original before any write or delete operation.

Implementation

static HookRegistration fileBackupHook({
  required Future<void> Function(String path, String content) writeBackup,
}) {
  return HookRegistration(
    id: 'builtin:file-backup',
    type: HookType.onFileChange,
    priority: HookPriority.high,
    name: 'File Backup',
    description: 'Creates .bak files before modifications.',
    source: 'builtin',
    tags: {'safety', 'backup'},
    asyncHandler: (context) async {
      if (context is FileHookContext) {
        final op = context.operation;
        if (op == FileOperation.write || op == FileOperation.delete) {
          if (context.previousContent != null) {
            await writeBackup(
              '${context.path}.bak',
              context.previousContent!,
            );
          }
        }
      }
      return const HookContinue();
    },
  );
}