fileBackupHook static method
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();
},
);
}