diff options
Diffstat (limited to 'bayes')
-rw-r--r-- | bayes | 46 |
1 files changed, 8 insertions, 38 deletions
@@ -1,47 +1,17 @@ #!/usr/bin/env perl6 use v6.d.PREVIEW; use lib 'lib'; -use MaildirIndexer::ScanDir; use MaildirIndexer::Store; -use MaildirIndexer::Parser; +use MaildirIndexer::Server; +use MaildirIndexer::Index::ByRef; sub MAIN($maildir) { - my $store = MaildirIndexer::Store.new; - - my $file-supply = scan-dir($maildir); - my $file-channel = $file-supply.Channel; - - for ^10 { - start react { - whenever $file-channel -> $file { - if $file.e && $file.f { - $store.add-file($file); - } - elsif !$file.e { - $store.del-file($file); - } - } - } - } - - my $listener = IO::Socket::Async.listen( - '127.0.0.1', - 9000, - :enc<utf8-c8>, + my $store = MaildirIndexer::Store.new( + :$maildir, + indices => MaildirIndexer::Index::ByRef.new, ); - react { - whenever signal(SIGINT) { exit } - whenever signal(SIGHUP) { - $store.dump(); - } - whenever $listener -> $conn { - LEAVE { $conn.close } - with parse-email($conn) -> $email { - with $store.mailbox-for-email($email) -> $mailbox { - await $conn.print("$mailbox\x0d\x0a"); - } - } - } - } + my $server = MaildirIndexer::Server.new(:$store); + $store.start(); + $server.serve() } |