about summary refs log tree commit homepage
path: root/script
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2016-08-11 19:15:23 +0000
committerEric Wong <e@80x24.org>2016-08-12 02:25:50 +0000
commit9a38d54754c724c5f81e8dc000bd42dbeddc39a6 (patch)
treefe763a98b19c81e408120e3d6dc076fcd603014d /script
parentb0f783fe601cfcaf89b30de461a540434f63b3ee (diff)
downloadpublic-inbox-9a38d54754c724c5f81e8dc000bd42dbeddc39a6.tar.gz
This can be useful for adding new lists, as restarting is
expensive (but still non-lossy).
Diffstat (limited to 'script')
-rwxr-xr-xscript/public-inbox-watch11
1 files changed, 8 insertions, 3 deletions
diff --git a/script/public-inbox-watch b/script/public-inbox-watch
index 42ae55ae..bb655929 100755
--- a/script/public-inbox-watch
+++ b/script/public-inbox-watch
@@ -5,10 +5,15 @@ 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 = PublicInbox::WatchMaildir->new($config);
+};
+$reload->();
 if ($watch_md) {
-        my $scan = sub { $watch_md->scan };
+        my $scan = sub { $watch_md->scan if $watch_md };
+        $SIG{HUP} = $reload;
         $SIG{USR1} = $scan;
         $SIG{ALRM} = sub { $SIG{ALRM} = 'DEFAULT'; $scan->() };
         alarm(1);