62 |
64 |
63 MAIN: { |
65 MAIN: { |
64 |
66 |
65 GetOptions("db!" => \$opt_db, |
67 GetOptions("db!" => \$opt_db, |
66 "mail!" => \$opt_mail, |
68 "mail!" => \$opt_mail, |
67 "message=s" => \$opt_message) |
69 "message=s" => \$opt_message, |
68 or die eval "\"$USAGE\""; |
70 "type=s" => \$opt_apt, |
|
71 ) or die eval "\"$USAGE\""; |
69 |
72 |
70 if ($opt_message =~ /^\.?\// and -f $opt_message) { |
73 if ($opt_message =~ /^\.?\// and -f $opt_message) { |
71 @ARGV = ($opt_message); |
74 @ARGV = ($opt_message); |
72 $opt_message = join "", <>; |
75 $opt_message = join "", <>; |
73 } elsif ($opt_message eq "-") { |
76 } elsif ($opt_message eq "-") { |
74 $opt_message = join "", <STDIN>; |
77 $opt_message = join "", <STDIN>; |
|
78 } elsif ($opt_message =~ /^((?:dist-)?upgrade):(.*)/) { |
|
79 open(I, $2) or die "Can't open $2: $!\n"; |
|
80 $opt_message = "$1\n" |
|
81 . join "", grep /^(?:Inst|Conf|Remv)/, <I>; |
|
82 |
|
83 die $opt_message; |
75 } |
84 } |
76 |
85 |
77 if ($opt_message =~ /\n/) { |
86 if ($opt_message =~ /\n/) { |
78 $opt_message =~ s/\n/\n /g; |
87 $opt_message =~ s/\n/\n /g; |
79 } |
88 } |
155 my $mailer = new Mail::Mailer "sendmail" |
164 my $mailer = new Mail::Mailer "sendmail" |
156 or die "Can't create Mailer: $!\n"; |
165 or die "Can't create Mailer: $!\n"; |
157 |
166 |
158 my $subject = (split /\n/, $text)[0]; |
167 my $subject = (split /\n/, $text)[0]; |
159 $subject =~ s/^\s*\S\s//; |
168 $subject =~ s/^\s*\S\s//; |
160 $subject = "Service [". hostname(). "]: $subject"; |
169 $subject = encode_qp("Service [". hostname(). "]: $subject"); |
161 |
170 |
162 $mailer->open({ |
171 $mailer->open({ |
163 "To" => $mailto, |
172 "To" => $mailto, |
164 "Subject" => $subject}); |
173 "Subject" => $subject}); |
165 print $mailer $head, "\n", $text; |
174 print $mailer $head, "\n", $text; |