X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=fingerprinter;h=03a67a11f78d6f09f77c6ff2a991b57d7502f1d7;hp=4318340a781c6addc934ecaac0b09a605ff3cc8a;hb=d10d13ffea1f2d6faeaaab789ebb1e690611d3d4;hpb=4af1c59db3508e1e5089fd958500e85c6931b361 diff --git a/fingerprinter b/fingerprinter index 4318340..03a67a1 100755 --- a/fingerprinter +++ b/fingerprinter @@ -1,4 +1,21 @@ #!/usr/bin/perl + +# Copyright 2009-2012, Equinox Software, Inc. +# +# This program 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. +# +# This program 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. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + use strict; use warnings; use open ':utf8'; @@ -17,13 +34,12 @@ $| = 1; initialize($conf); open OF, '>', $conf->{output} or die "$0: cannot open output file $conf->{output}: $!\n"; -open XF, '>', $conf->{exception} or die "$0: cannot open exception file $conf->{output}: $!\n"; +open XF, '>', $conf->{exception} or die "$0: cannot open exception file $conf->{exception}: $!\n"; for my $file (@ARGV) { print XF "Processing $file\n"; - my $batch = undef; my $record = undef; - $batch = MARC::Batch->new($conf->{marctype}, $file); + my $batch = MARC::Batch->new($conf->{marctype}, $file); $batch->strict_off(); $batch->warnings_off(); @@ -159,6 +175,10 @@ sub populate_marc { $marc{pages} = $1 if (defined $marc{desc} and $marc{desc} =~ /(\d+)/); $marc{title} = $record->field('245')->subfield('a') if $record->field('245'); + $marc{title} .= ' ' . $record->field('245')->subfield('b') + if ($record->field('245') and + $record->field('245')->subfield('b') and + not $conf->{ignoresubtitle}); $marc{edition} = $record->field('250')->subfield('a') if $record->field('250'); if ($record->field('260')) { @@ -489,6 +509,7 @@ sub initialize { 'arbitrarily-lose-below=i', 'newwins', 'excludelist=s', + 'ignoresubtitle|i', 'quiet|q', 'help|h', ); @@ -584,9 +605,10 @@ Req'd Arguments --prefix=> -p Shared prefix for output/exception files. Will produce PREFIX.fp and PREFIX.fp.ex Options - --tag=N -t Which tag to use (default 903) - --subfield=X -s Which subfield to use (default 'a') - --quiet -q Don't write status messages to STDOUT + --tag=N -t Which tag to use (default 903) + --subfield=X -s Which subfield to use (default 'a') + --quiet -q Don't write status messages to STDOUT + --ignoresubtitle -i Ignore 245\$b and construct the title from 245\$a alone. --fingerprints=LIST Fingerprints to generate, comma separated Default: oclc,isbn,edition,issn,lccn,accomp,authpub