Mercurial > dovecot > core-2.2
changeset 20395:d4ea7744872f
doveadm fs delete: Allow multiple paths also with -R parameter.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Tue, 21 Jun 2016 18:47:42 +0300 |
parents | 0993d4b55bc8 |
children | 44c7e5e1432c |
files | src/doveadm/doveadm-fs.c |
diffstat | 1 files changed, 13 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/doveadm-fs.c Tue Jun 21 18:30:20 2016 +0300 +++ b/src/doveadm/doveadm-fs.c Tue Jun 21 18:47:42 2016 +0300 @@ -398,16 +398,12 @@ doveadm_fs_delete_async_finish(&ctx); } -static void -cmd_fs_delete_recursive(int argc, char *argv[], unsigned int async_count) +static void cmd_fs_delete_recursive_path(struct fs *fs, const char *path, + unsigned int async_count) { - struct fs *fs; struct fs_file *file; - const char *path; unsigned int path_len; - fs = cmd_fs_init(&argc, &argv, 1, cmd_fs_delete); - path = argv[0]; path_len = strlen(path); if (path_len > 0 && path[path_len-1] != '/') path = t_strconcat(path, "/", NULL); @@ -423,6 +419,17 @@ } fs_file_deinit(&file); } +} + +static void +cmd_fs_delete_recursive(int argc, char *argv[], unsigned int async_count) +{ + struct fs *fs; + unsigned int i; + + fs = cmd_fs_init(&argc, &argv, 0, cmd_fs_delete); + for (i = 0; argv[i] != NULL; i++) + cmd_fs_delete_recursive_path(fs, argv[i], async_count); fs_deinit(&fs); }