cyrus-migrate.pl
changeset 8 7d66f58516c1
parent 6 9d3800a5e930
equal deleted inserted replaced
7:2d6d5cafd56e 8:7d66f58516c1
    37     --logdir=s	    directory where logfiles will go to ($opt_logdir)
    37     --logdir=s	    directory where logfiles will go to ($opt_logdir)
    38     --maxage=i	    synchronize only mails younger than $(opt_maxage)
    38     --maxage=i	    synchronize only mails younger than $(opt_maxage)
    39     --help	    this help text
    39     --help	    this help text
    40     --folders	    only sync folders
    40     --folders	    only sync folders
    41     --acls	    fix ACLs
    41     --acls	    fix ACLs
       
    42     --shared	    migrage shared mailboxes
    42 #
    43 #
    43 
    44 
    44 use strict;
    45 use strict;
    45 use warnings;
    46 use warnings;
    46 use Smart::Comments;
    47 use Smart::Comments;
    71 my $opt_skip = 0;
    72 my $opt_skip = 0;
    72 my $opt_logdir = "./imapsync-log/";
    73 my $opt_logdir = "./imapsync-log/";
    73 my $opt_maxage = 0;
    74 my $opt_maxage = 0;
    74 my $opt_folders = 0;
    75 my $opt_folders = 0;
    75 my $opt_acls = 0;
    76 my $opt_acls = 0;
       
    77 my $opt_shared = 0;
    76 
    78 
    77 GetOptions(
    79 GetOptions(
    78     "dry-ryn"	    =>	\$opt_dry,
    80     "dry-ryn"	    =>	\$opt_dry,
    79     "skip"	    =>	\$opt_skip,
    81     "skip"	    =>	\$opt_skip,
    80     "folders"	    =>	\$opt_folders,
    82     "folders"	    =>	\$opt_folders,
    81     "acls"	    =>	\$opt_acls,
    83     "acls"	    =>	\$opt_acls,
       
    84     "shared"	    =>	\$opt_shared,
    82     "logdir=s"	    =>	\$opt_logdir,
    85     "logdir=s"	    =>	\$opt_logdir,
    83     "maxage=i"	    =>	\$opt_maxage,
    86     "maxage=i"	    =>	\$opt_maxage,
    84 ) or die eval "\"$usage\"";
    87 ) or die eval "\"$usage\"";
    85 
    88 
    86 if ($opt_acls) {
    89 if ($opt_acls) {
    88     #system('cat cyrus_mbox_acls.txt | sed s/root@[^\t]*/root/ | su - cyrus -c "/usr/sbin/ctl_mboxlist -u"');
    91     #system('cat cyrus_mbox_acls.txt | sed s/root@[^\t]*/root/ | su - cyrus -c "/usr/sbin/ctl_mboxlist -u"');
    89     system('cat cyrus_mbox_acls.txt | sed \'s/root@[^\t]*/root/\' | su - cyrus -c "/usr/sbin/ctl_mboxlist -u"');
    92     system('cat cyrus_mbox_acls.txt | sed \'s/root@[^\t]*/root/\' | su - cyrus -c "/usr/sbin/ctl_mboxlist -u"');
    90     
    93     
    91     exit 0;
    94     exit 0;
    92 }
    95 }
       
    96 
       
    97 if ($opt_shared) {
       
    98     system("./imapsync --syncacls --ssl1 --ssl2 --prefix2 'Shared Folders' --prefix1 'Shared Folders' --sep1 / --sep2 / --host1 $imap_from_host --host2  $imap_to_host     --subscribe --user1 heiko\@schlittermann.de --user2 heiko\@schlittermann.de --authuser1 root --authuser2 root   --password1 x --password2 x --folder 'Shared Folders/domains'");
       
    99     exit 0;
       
   100 }
       
   101 
       
   102 
    93 
   103 
    94 ### connection to mysql account database
   104 ### connection to mysql account database
    95 my $dbh = DBI->connect($dsn, $db_user, $db_pass, { RaiseError => 1} ) or
   105 my $dbh = DBI->connect($dsn, $db_user, $db_pass, { RaiseError => 1} ) or
    96     die "$ME: cannot conncet to mysql: $!\n";
   106     die "$ME: cannot conncet to mysql: $!\n";
    97 
   107