Koha/misc/batchdeletebiblios.pl
2012-10-02 17:48:03 +02:00

90 lines
2 KiB
Perl
Executable file

#!/usr/bin/perl
use Modern::Perl;
use Getopt::Long;
use Pod::Usage;
use IO::File;
use C4::Biblio;
my ($help, $files);
GetOptions(
'h|help' => \$help,
);
pod2usage(1) if $help or not @ARGV;
for my $file ( @ARGV ) {
say "Find biblionumber in file $file";
my $fh;
open($fh, '<', $file) or say "Error: '$file' $!" and next;
while ( <$fh> ) {
my $biblionumber = $_;
$biblionumber =~ s/$1/\n/g if $biblionumber =~ m/(\r\n?|\n\r?)/;
chomp $biblionumber;
my $dbh = C4::Context->dbh;
next if not $biblionumber =~ /^\d*$/;
print "Delete biblionumber $biblionumber ";
my $error;
eval {
$error = DelBiblio $biblionumber;
};
if ( $@ or $error) {
say "KO $@ ($! | $error)";
} else {
say "OK";
}
}
}
exit(0);
__END__
=head1 NAME
batchdeletebiblios.pl
=head1 SYNOPSIS
./batchdeletebiblio.pl file1 [file2 ... filen]
This script batch deletes biblios which contain a biblionumber present in file passed in parameter.
If one biblio has items, it is not deleted.
=head1 OPTIONS
=over 8
=item B<-h|--help>
prints this help message
=back
=head1 AUTHOR
Jonathan Druart <jonathan.druart@biblibre.com>
=head1 COPYRIGHT
Copyright 2012 BibLibre
=head1 LICENSE
This file is part of Koha.
Koha is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later version.
You should have received a copy of the GNU General Public License along
with Koha; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
=head1 DISCLAIMER OF WARRANTY
Koha is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
=cut