X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=script%2Fpublic-inbox-watch;h=51f1baa29c98868c6d9ded5c57702540fc1d3a46;hb=f9b70eb6ebbf96c2fe79ab2738ea4954c5a124f3;hp=42ae55ae9b760567e4238738329a7457a59994b5;hpb=619b9d46b91cdf0f523b3804ec9a07b0f1ba4efe;p=public-inbox.git diff --git a/script/public-inbox-watch b/script/public-inbox-watch index 42ae55ae..51f1baa2 100755 --- a/script/public-inbox-watch +++ b/script/public-inbox-watch @@ -5,12 +5,18 @@ use strict; use warnings; use PublicInbox::WatchMaildir; use PublicInbox::Config; -my $config = PublicInbox::Config->new; -my $watch_md = PublicInbox::WatchMaildir->new($config); +my ($config, $watch_md); +my $reload = sub { + $config = PublicInbox::Config->new; + $watch_md->quit if $watch_md; + $watch_md = PublicInbox::WatchMaildir->new($config); +}; +$reload->(); if ($watch_md) { - my $scan = sub { $watch_md->scan }; + my $scan = sub { $watch_md->trigger_scan('full') if $watch_md }; + $SIG{HUP} = $reload; $SIG{USR1} = $scan; $SIG{ALRM} = sub { $SIG{ALRM} = 'DEFAULT'; $scan->() }; alarm(1); - $watch_md->watch; + $watch_md->watch while ($watch_md); }