X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=script%2Fpublic-inbox-watch;h=55183ef26b49582ad0e9e2fb2c770ba6ccc725c8;hb=352956bcf1933bdaeba631deb4ade7dc7fd754b1;hp=b6c6b2022bb7ae64e6aae5e4cccaa73b68866e59;hpb=3bfbaacac15a14a379e360dc2d6c5989f49c3769;p=public-inbox.git diff --git a/script/public-inbox-watch b/script/public-inbox-watch index b6c6b202..55183ef2 100755 --- a/script/public-inbox-watch +++ b/script/public-inbox-watch @@ -1,13 +1,24 @@ #!/usr/bin/perl -w # Copyright (C) 2016-2020 all contributors # License: AGPL-3.0+ +my $help = <autoflush use PublicInbox::Watch; use PublicInbox::Config; use PublicInbox::DS; use PublicInbox::Sigfd; use PublicInbox::Syscall qw($SFD_NONBLOCK); +my $do_scan = 1; +GetOptions('scan!' => \$do_scan, # undocumented, testing only + 'help|h' => \(my $show_help)) or do { print STDERR $help; exit 1 }; +if ($show_help) { print $help; exit 0 }; my $oldset = PublicInbox::Sigfd::block_signals(); STDOUT->autoflush(1); STDERR->autoflush(1); @@ -44,13 +55,12 @@ if ($watch) { $sig->{QUIT} = $sig->{TERM} = $sig->{INT} = $quit; # --no-scan is only intended for testing atm, undocumented. - unless (grep(/\A--no-scan\z/, @ARGV)) { - PublicInbox::DS::requeue($scan); - } + PublicInbox::DS::requeue($scan) if $do_scan; + my $sigfd = PublicInbox::Sigfd->new($sig, $SFD_NONBLOCK); local %SIG = (%SIG, %$sig) if !$sigfd; if (!$sigfd) { - PublicInbox::Sigfd::set_sigmask($oldset); + PublicInbox::Sigfd::sig_setmask($oldset); PublicInbox::DS->SetLoopTimeout(1000); } $watch->watch($sig, $oldset) while ($watch);