summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2005-06-15 04:46:50 +0000
committerivan <ivan>2005-06-15 04:46:50 +0000
commitbeb9cc8ec5bc9ec114763d5ecb48cf674ff4de72 (patch)
treeeaf25d65b0a836a27793670f1fdba46b8a37a89c
parentf668a9151404001b54757fab5cbbefb88079be6a (diff)
better error reporting for actual errors from lpr command
-rw-r--r--FS/FS/cust_bill.pm17
-rw-r--r--README.1.5.72
2 files changed, 11 insertions, 8 deletions
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index dfebba63c..26c3d4bc4 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -3,6 +3,7 @@ package FS::cust_bill;
use strict;
use vars qw( @ISA $DEBUG $conf $money_char );
use vars qw( $invoice_lines @buf ); #yuck
+use IPC::Run3;
use Date::Format;
use Text::Template 1.20;
use File::Temp 0.14;
@@ -631,7 +632,7 @@ sub email {
=item lpr_data [ TEMPLATENAME ]
-Returns the postscript or plaintext for this invoice.
+Returns the postscript or plaintext for this invoice as an arrayref.
TEMPLATENAME, if specified, is the name of a suffix for alternate invoices.
@@ -657,12 +658,14 @@ sub print {
my $template = scalar(@_) ? shift : '';
my $lpr = $conf->config('lpr');
- open(LPR, "|$lpr")
- or die "Can't open pipe to $lpr: $!\n";
- print LPR @{ $self->lpr_data($template) };
- close LPR
- or die $! ? "Error closing $lpr: $!\n"
- : "Exit status $? from $lpr\n";
+
+ my $outerr = '';
+ run3 $lpr, $self->lpr_data($template), \$outerr, \$outerr;
+ if ( $? ) {
+ $outerr = ": $outerr" if length($outerr);
+ die "Error from $lpr (exit status ". ($?>>8). ")$outerr\n";
+ }
+
}
=item fax [ TEMPLATENAME ]
diff --git a/README.1.5.7 b/README.1.5.7
index db654ca5d..b4ffff1cd 100644
--- a/README.1.5.7
+++ b/README.1.5.7
@@ -153,7 +153,7 @@ dbdef-create username
install Javascript::RPC (JavaScript::RPC::Server::CGI), Text::CSV_XS,
Spreadsheet::WriteExcel, IO-stringy (IO::Scalar), Frontier::RPC
-(Frontier::RPC2) and MIME::Entity (MIME-tools)
+(Frontier::RPC2), MIME::Entity (MIME-tools) and IPC::Run3
afterwords (for installs w/integrated RT):
install HTML::Scrubber, Text::Quoted and Tree::Simple