From 6eac6f088df021cec0f95a00e958562a6ca0e8f8 Mon Sep 17 00:00:00 2001 From: Chris Cormack Date: Thu, 21 Feb 2013 22:10:48 +1300 Subject: [PATCH] Bug 9656: Make logging to a file optional (for fines) To test: 1/ Before the patch run misc/cronjobs/fines.pl Notice that a file has been written to /tmp 2/ rm the file 3/ Apply the patch and run the script again Notice the file is not created 4/ run the script with -l Notice the file is created again --- misc/cronjobs/fines.pl | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/misc/cronjobs/fines.pl b/misc/cronjobs/fines.pl index 27bd061..d7523ac 100755 --- a/misc/cronjobs/fines.pl +++ b/misc/cronjobs/fines.pl @@ -42,10 +42,12 @@ use Koha::DateUtils; my $help; my $verbose; my $output_dir; +my $log; GetOptions( 'h|help' => \$help, 'v|verbose' => \$verbose, + 'l|log' => \$log, 'o|out:s' => \$output_dir, ); my $usage = << 'ENDUSAGE'; @@ -58,6 +60,7 @@ calculated but not applied. This script has the following parameters : -h --help: this message + -l --log: log the output to a file -o --out: ouput directory for logs (defaults to env or /tmp if !exist) -v --verbose @@ -81,11 +84,13 @@ my %is_holiday; my $today = DateTime->now( time_zone => C4::Context->tz() ); my $filename = get_filename($output_dir); -open my $fh, '>>', $filename or croak "Cannot write file $filename: $!"; -print {$fh} join $delim, ( @borrower_fields, @item_fields, @other_fields ); -print {$fh} "\n"; - -my $counted = 0; +my $fh; +if ($log) { + open my $fh, '>>', $filename or croak "Cannot write file $filename: $!"; + print {$fh} join $delim, ( @borrower_fields, @item_fields, @other_fields ); + print {$fh} "\n"; +} +my $counted = 0; my $overdues = Getoverdues(); for my $overdue ( @{$overdues} ) { if ( !defined $overdue->{borrowernumber} ) { @@ -126,19 +131,29 @@ for my $overdue ( @{$overdues} ) { ); } } - my @cells; - push @cells, - map { defined $borrower->{$_} ? $borrower->{$_} : q{} } @borrower_fields; - push @cells, map { $overdue->{$_} } @item_fields; - push @cells, $type, $unitcounttotal, $amount; - say {$fh} join $delim, @cells; + if ($log) { + my @cells; + push @cells, + map { defined $borrower->{$_} ? $borrower->{$_} : q{} } + @borrower_fields; + push @cells, map { $overdue->{$_} } @item_fields; + push @cells, $type, $unitcounttotal, $amount; + say {$fh} join $delim, @cells; + } +} +if ($log){ + close $fh; } -close $fh; if ($verbose) { my $overdue_items = @{$overdues}; print <<"EOM"; -Fines assessment -- $today -- Saved to $filename +Fines assessment -- $today +EOM + if ($log) { + say "Saved to $filename"; + } + print <<"EOM"; Number of Overdue Items: counted $overdue_items reported $counted @@ -165,7 +180,7 @@ sub get_filename { $name =~ s/\W//; $name .= join q{}, q{_}, $today->ymd(), '.log'; $name = File::Spec->catfile( $directory, $name ); - if ($verbose) { + if ($verbose && $log) { say "writing to $name"; } return $name; -- 1.7.10.4