From 81330149f84f26c3e0492a296acfce7bd55d783f Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Wed, 5 May 2010 16:38:50 +0200 Subject: [PATCH] ask for confirmation before AOF is truncated --- redis-check-aof.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/redis-check-aof.c b/redis-check-aof.c index 8d72e6b2..050bb562 100644 --- a/redis-check-aof.c +++ b/redis-check-aof.c @@ -154,16 +154,26 @@ int main(int argc, char **argv) { } long pos = process(fp); - if (pos < size) { + long diff = size-pos; + if (diff > 0) { if (fix) { + char buf[2]; + printf("This will shrink the AOF from %ld bytes, with %ld bytes, to %ld bytes\n",size,diff,pos); + printf("Continue? [y/N]: "); + if (fgets(buf,sizeof(buf),stdin) == NULL || + strncasecmp(buf,"y",1) != 0) { + printf("Aborting...\n"); + exit(1); + } if (ftruncate(fileno(fp), pos) == -1) { - printf("Could not truncate AOF to size %ld\n", pos); + printf("Failed to truncate AOF\n"); exit(1); } else { - printf("AOF succesfully truncated to %ld bytes\n", pos); + printf("Successfully truncated AOF\n"); } } else { - printf("First invalid operation at offset %ld\n", pos); + printf("AOF is not valid\n"); + exit(1); } } else { printf("AOF is valid\n"); -- GitLab