Mercurial > dovecot > original-hg > dovecot-1.2
annotate src/plugins/convert/convert-tool.c @ 4860:87ae4d41bc10 HEAD
Create storages with MAIL_STORAGE_FLAG_NO_AUTOCREATE flag so we don't keep
recreating the old storage and converting it all the time. Also added
convert_skip_broken_mailboxes flag.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 03 Dec 2006 15:35:18 +0200 |
parents | 5255476a24b5 |
children | 6ab2712f1a93 |
rev | line source |
---|---|
3972
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
1 /* Copyright (C) 2006 Timo Sirainen */ |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 #include "lib.h" |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
4 #include "ioloop.h" |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
5 #include "randgen.h" |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
6 #include "lib-signals.h" |
4851
5255476a24b5
Don't #include a .c file. Figured out another way to do it.
Timo Sirainen <tss@iki.fi>
parents:
3972
diff
changeset
|
7 #include "mail-storage.h" |
3972
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
8 #include "convert-storage.h" |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
9 |
4860
87ae4d41bc10
Create storages with MAIL_STORAGE_FLAG_NO_AUTOCREATE flag so we don't keep
Timo Sirainen <tss@iki.fi>
parents:
4851
diff
changeset
|
10 #include <stdlib.h> |
87ae4d41bc10
Create storages with MAIL_STORAGE_FLAG_NO_AUTOCREATE flag so we don't keep
Timo Sirainen <tss@iki.fi>
parents:
4851
diff
changeset
|
11 |
3972
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
12 int main(int argc, const char *argv[]) |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
13 { |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 struct ioloop *ioloop; |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 int ret = 0; |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
17 lib_init(); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
18 lib_signals_init(); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
19 random_init(); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
20 mail_storage_init(); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
21 mail_storage_register_all(); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
22 |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
23 if (argc <= 4) { |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
24 i_fatal("Usage: <username> <home dir> " |
4860
87ae4d41bc10
Create storages with MAIL_STORAGE_FLAG_NO_AUTOCREATE flag so we don't keep
Timo Sirainen <tss@iki.fi>
parents:
4851
diff
changeset
|
25 "<source mail env> <dest mail env> " |
87ae4d41bc10
Create storages with MAIL_STORAGE_FLAG_NO_AUTOCREATE flag so we don't keep
Timo Sirainen <tss@iki.fi>
parents:
4851
diff
changeset
|
26 "[<1=skip broken mailboxes>]"); |
3972
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
27 } |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
28 |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
29 ioloop = io_loop_create(system_pool); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
30 |
4860
87ae4d41bc10
Create storages with MAIL_STORAGE_FLAG_NO_AUTOCREATE flag so we don't keep
Timo Sirainen <tss@iki.fi>
parents:
4851
diff
changeset
|
31 ret = convert_storage(argv[1], argv[2], argv[3], argv[4], |
87ae4d41bc10
Create storages with MAIL_STORAGE_FLAG_NO_AUTOCREATE flag so we don't keep
Timo Sirainen <tss@iki.fi>
parents:
4851
diff
changeset
|
32 argv[5] != NULL && atoi(argv[5]) == 1); |
3972
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
33 if (ret > 0) |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
34 i_info("Successfully converted"); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
35 else if (ret == 0) |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
36 i_error("Source storage not found"); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
37 else |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
38 i_error("Internal failure"); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
39 |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
40 io_loop_destroy(&ioloop); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
41 mail_storage_deinit(); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
42 lib_signals_deinit(); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
43 lib_deinit(); |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
44 return ret; |
a506ee4ec31e
Added "mail storage conversion" plugin. It can be used with IMAP, POP3
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
45 } |