dovecot-2.2: doveadm fs delete -R: Delete the root directory also.
dovecot at dovecot.org
dovecot at dovecot.org
Tue Feb 17 21:14:46 UTC 2015
details: http://hg.dovecot.org/dovecot-2.2/rev/d7d35fd179e8
changeset: 18261:d7d35fd179e8
user: Timo Sirainen <tss at iki.fi>
date: Tue Feb 17 23:13:00 2015 +0200
description:
doveadm fs delete -R: Delete the root directory also.
diffstat:
src/doveadm/doveadm-fs.c | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
diffs (28 lines):
diff -r 359bc38c5e90 -r d7d35fd179e8 src/doveadm/doveadm-fs.c
--- a/src/doveadm/doveadm-fs.c Tue Feb 17 23:07:00 2015 +0200
+++ b/src/doveadm/doveadm-fs.c Tue Feb 17 23:13:00 2015 +0200
@@ -335,9 +335,23 @@
cmd_fs_delete_recursive(int argc, char *argv[], unsigned int async_count)
{
struct fs *fs;
+ struct fs_file *file;
+ const char *path;
fs = cmd_fs_init(&argc, &argv, 1, cmd_fs_delete);
- cmd_fs_delete_dir_recursive(fs, async_count, argv[0]);
+ path = argv[0];
+
+ cmd_fs_delete_dir_recursive(fs, async_count, path);
+ if ((fs_get_properties(fs) & FS_PROPERTY_DIRECTORIES) != 0) {
+ /* delete the root itself */
+ file = fs_file_init(fs, path, FS_OPEN_MODE_READONLY);
+ if (fs_delete(file) < 0) {
+ i_error("fs_delete(%s) failed: %s",
+ fs_file_path(file), fs_file_last_error(file));
+ doveadm_exit_code = EX_TEMPFAIL;
+ }
+ fs_file_deinit(&file);
+ }
fs_deinit(&fs);
}
More information about the dovecot-cvs
mailing list