summaryrefslogtreecommitdiff
path: root/bayes
diff options
context:
space:
mode:
Diffstat (limited to 'bayes')
-rw-r--r--bayes46
1 files changed, 8 insertions, 38 deletions
diff --git a/bayes b/bayes
index e3814fc..0bb9d3e 100644
--- a/bayes
+++ b/bayes
@@ -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()
}