4 # cd ~webstump/live-SOMETHING
5 # formail < /path/to/mbox -s ./manual-reinject -f
6 # (mbox can sensibly be a folder in ~/mail)
8 # without -f means get the instance abbrev out of the Subject line
9 # -f means use this instance
21 } elsif (@ARGV==1 && $ARGV[0] eq '-f') {
30 if (m/^Subject: lost moderated newsgroup submission (\S+)/) {
38 last if m/^======================$/;
39 if (m/^Errors: inews: .*: 441 POST failed - .*: 441 435 Duplicate$/) {
44 my $art = IO::File::new_tmpfile;
45 defined $art or die $!;
50 print $art $_ or die $!;
52 if (m/^X-Moderation: \[([^][]+)\]/) {
60 print $art $_ or die $!;
63 STDIN->error and die $!;
64 $art->flush() or die $!;
65 seek $art,0,0 or die $!;
70 print "$xmodid - duplicate\n";
78 stat $obj or die "$obj $!";
85 $injector = './inews';
86 } elsif (!defined $abbrev) {
87 die "abbrev not found in outer Subject";
89 my $dir = $ENV{'PWD'};
91 my $env_stat = stat_ino $dir;
92 my $cwd_stat = stat_ino '.';
93 die "$env_stat != $cwd_stat" unless $env_stat eq $cwd_stat;
94 $dir =~ s#/live-\w[^/]*$#/live-$abbrev# or die "unexpected cwd $dir";
95 $injector = "$dir/inews";
98 print "$xmodid - $injector\n";
100 open STDIN, "<&", $art or die $!;