7 use File::Temp qw/ tempdir /;
10 use C4::AuthoritiesMarc;
13 # script that checks zebradir structure & create directories & mandatory files if needed
17 $|=1; # flushes output
19 # limit for database dumping
20 my $limit;# = "LIMIT 1";
31 my $result = GetOptions(
39 'munge-config' => \$do_munge,
41 'h|help' => \$want_help,
45 if (not $result or $want_help) {
50 if (not $biblios and not $authorities) {
51 my $msg = "Must specify -b or -a to reindex bibs or authorites\n";
52 $msg .= "Please do '$0 --help' to see usage.\n";
62 $directory = tempdir(CLEANUP => ($keep_export ? 0 : 1));
66 my $biblioserverdir = C4::Context->zebraconfig('biblioserver')->{directory};
67 my $authorityserverdir = C4::Context->zebraconfig('authorityserver')->{directory};
69 my $kohadir = C4::Context->config('intranetdir');
70 my $dbh = C4::Context->dbh;
71 my ($biblionumbertagfield,$biblionumbertagsubfield) = &GetMarcFromKohaField("biblio.biblionumber","");
72 my ($biblioitemnumbertagfield,$biblioitemnumbertagsubfield) = &GetMarcFromKohaField("biblioitems.biblioitemnumber","");
74 print "Zebra configuration information\n";
75 print "================================\n";
76 print "Zebra biblio directory = $biblioserverdir\n";
77 print "Zebra authorities directory = $authorityserverdir\n";
78 print "Koha directory = $kohadir\n";
79 print "BIBLIONUMBER in : $biblionumbertagfield\$$biblionumbertagsubfield\n";
80 print "BIBLIOITEMNUMBER in : $biblioitemnumbertagfield\$$biblioitemnumbertagsubfield\n";
81 print "================================\n";
89 # exporting authorities
92 print "====================\n";
93 print "SKIPPING authorities export\n";
94 print "====================\n";
96 print "====================\n";
97 print "exporting authorities\n";
98 print "====================\n";
99 mkdir "$directory" unless (-d $directory);
100 mkdir "$directory/authorities" unless (-d "$directory/authorities");
101 open(OUT,">:utf8","$directory/authorities/authorities.iso2709") or die $!;
102 my $dbh=C4::Context->dbh;
104 $sth=$dbh->prepare("select authid,marc from auth_header $limit");
107 while (my ($authid,$record) = $sth->fetchrow) {
108 # FIXME : we retrieve the iso2709 record. if the GetAuthority (that uses the XML) fails
109 # due to some MARC::File::XML failure, then try the iso2709,
110 # (add authid & authtype if needed)
113 $record = GetAuthority($authid);
116 # force authid in case it's not here, otherwise, zebra will die on this authority
117 unless ($record->field('001')->data() eq $authid){
118 print "$authid don't exist for this authority :".$record->as_formatted;
119 $record->delete_field($record->field('001'));
120 $record->insert_fields_ordered(MARC::Field->new('001',$authid));
123 print " There was some pb getting authority : ".$authid."\n";
128 print "\r$i" unless ($i++ %100);
129 # # remove leader length, that could be wrong, it will be calculated automatically by as_usmarc
130 # # otherwise, if it's wron, zebra will fail miserabily (and never index what is after the failing record)
131 my $leader=$record->leader;
132 substr($leader,0,5)=' ';
133 substr($leader,10,7)='22 ';
134 $record->leader(substr($leader,0,24));
135 print OUT $record->as_usmarc;
141 # and reindexing everything
143 print "====================\n";
144 print "REINDEXING zebra\n";
145 print "====================\n";
146 system("zebraidx -c ".C4::Context->zebraconfig('authorityserver')->{config}." -g iso2709 -d authorities init") if ($reset);
147 system("zebraidx -c ".C4::Context->zebraconfig('authorityserver')->{config}." $noshadow -g iso2709 -d authorities update $directory/authorities");
148 system("zebraidx -c ".C4::Context->zebraconfig('authorityserver')->{config}." -g iso2709 -d authorities commit") unless $noshadow;
150 print "skipping authorities\n";
152 #################################################################################################################
154 #################################################################################################################
162 print "====================\n";
163 print "SKIPPING biblio export\n";
164 print "====================\n";
166 print "====================\n";
167 print "exporting biblios\n";
168 print "====================\n";
169 mkdir "$directory" unless (-d $directory);
170 mkdir "$directory/biblios" unless (-d "$directory/biblios");
171 open(OUT,">:utf8 ","$directory/biblios/export") or die $!;
172 my $dbh=C4::Context->dbh;
175 $sth=$dbh->prepare("select biblionumber,marc from biblioitems order by biblionumber $limit");
178 while (my ($biblionumber,$marc) = $sth->fetchrow) {
180 $record=MARC::Record->new_from_usmarc($marc);
181 my $record_correct=1;
182 # skip uncorrect records : isn't this bogus, as just after we reintroduce biblionumber if it's missing ?
183 # FIXME next unless $record->field($biblionumbertagfield);
184 # check if biblionumber is present, otherwise, add it on the fly
185 if ($biblionumbertagfield eq '001') {
186 unless ($record->field($biblionumbertagfield)->data()) {
189 # if the field where biblionumber is already exist, just update it, otherwise create it
190 if ($record->field($biblionumbertagfield)) {
191 $field = $record->field($biblionumbertagfield);
192 $field->update($biblionumber);
195 $newfield = MARC::Field->new( $biblionumbertagfield, $biblionumber);
196 $record->append_fields($newfield);
200 unless ($record->subfield($biblionumbertagfield,$biblionumbertagsubfield)) {
203 # if the field where biblionumber is already exist, just update it, otherwise create it
204 if ($record->field($biblionumbertagfield)) {
205 $field = $record->field($biblionumbertagfield);
206 $field->add_subfields($biblionumbertagsubfield => $biblionumber);
209 $newfield = MARC::Field->new( $biblionumbertagfield,'','', $biblionumbertagsubfield => $biblionumber);
210 $record->append_fields($newfield);
213 # warn "FIXED BIBLIONUMBER".$record->as_formatted;
215 unless ($record->subfield($biblioitemnumbertagfield,$biblioitemnumbertagsubfield)) {
217 # warn "INCORRECT BIBLIOITEMNUMBER :".$record->as_formatted;
219 # if the field where biblionumber is already exist, just update it, otherwise create it
220 if ($record->field($biblioitemnumbertagfield)) {
221 $field = $record->field($biblioitemnumbertagfield);
222 if ($biblioitemnumbertagfield <10) {
223 $field->update($biblionumber);
225 $field->add_subfields($biblioitemnumbertagsubfield => $biblionumber);
229 if ($biblioitemnumbertagfield <10) {
230 $newfield = MARC::Field->new( $biblioitemnumbertagfield, $biblionumber);
232 $newfield = MARC::Field->new( $biblioitemnumbertagfield,'','', $biblioitemnumbertagsubfield => $biblionumber);
234 $record->insert_grouped_field($newfield);
236 # warn "FIXED BIBLIOITEMNUMBER".$record->as_formatted;
238 my $leader=$record->leader;
239 substr($leader,0,5)=' ';
240 substr($leader,10,7)='22 ';
241 $record->leader(substr($leader,0,24));
242 print OUT $record->as_usmarc();
246 $sth=$dbh->prepare("SELECT biblionumber FROM biblioitems ORDER BY biblionumber $limit");
249 while (my ($biblionumber) = $sth->fetchrow) {
251 print "\r$i" unless ($i++ %100);
254 $record = GetMarcBiblio($biblionumber);
257 print " There was some pb getting biblio : #".$biblionumber."\n";
261 # die if $record->subfield('090','9') eq 11;
263 # check that biblionumber & biblioitemnumber are stored in the MARC record, otherwise, add them & update the biblioitems.marcxml data.
264 my $record_correct=1;
265 # skip uncorrect records : isn't this bogus, as just after we reintroduce biblionumber if it's missing ?
266 # FIXME next unless $record->field($biblionumbertagfield);
272 if ($biblionumbertagfield eq '001') {
273 unless ($record->field($biblionumbertagfield) && $record->field($biblionumbertagfield)->data()) {
276 # if the field where biblionumber is already exist, just update it, otherwise create it
277 if ($record->field($biblionumbertagfield)) {
278 $field = $record->field($biblionumbertagfield);
279 $field->update($biblionumber);
282 $newfield = MARC::Field->new( $biblionumbertagfield, $biblionumber);
283 $record->append_fields($newfield);
287 unless ($record->subfield($biblionumbertagfield,$biblionumbertagsubfield)) {
288 # warn "fixing biblionumber for $biblionumbertagfield,$biblionumbertagsubfield = $biblionumber";
291 # if the field where biblionumber is already exist, just update it, otherwise create it
292 if ($record->field($biblionumbertagfield)) {
293 $field = $record->field($biblionumbertagfield);
294 $field->add_subfields($biblionumbertagsubfield => $biblionumber);
297 $newfield = MARC::Field->new( $biblionumbertagfield,'','', $biblionumbertagsubfield => $biblionumber);
298 $record->append_fields($newfield);
301 # warn "FIXED BIBLIONUMBER".$record->as_formatted;
305 # CHECK BIBLIOITEMNUMBER
308 unless ($record->subfield($biblioitemnumbertagfield,$biblioitemnumbertagsubfield)) {
309 # warn "fixing biblioitemnumber for $biblioitemnumbertagfield,$biblioitemnumbertagsubfield = $biblionumber";
312 # if the field where biblionumber is already exist, just update it, otherwise create it
313 if ($record->field($biblioitemnumbertagfield)) {
314 $field = $record->field($biblioitemnumbertagfield);
315 if ($biblioitemnumbertagfield <10) {
316 $field->update($biblionumber);
318 $field->add_subfields($biblioitemnumbertagsubfield => $biblionumber);
322 if ($biblioitemnumbertagfield <10) {
323 $newfield = MARC::Field->new( $biblioitemnumbertagfield, $biblionumber);
325 $newfield = MARC::Field->new( $biblioitemnumbertagfield,'','', $biblioitemnumbertagsubfield => $biblionumber);
327 $record->insert_grouped_field($newfield);
329 # warn "FIXED BIBLIOITEMNUMBER".$record->as_formatted;
336 my $encoding = C4::Context->preference("marcflavour");
337 # deal with UNIMARC field 100 (encoding) : create it if needed & set encoding to unicode
338 if ( $encoding eq "UNIMARC" ) {
340 if ( length($record->subfield( 100, "a" )) == 35 ) {
341 $string = $record->subfield( 100, "a" );
342 my $f100 = $record->field(100);
343 $record->delete_field($f100);
346 $string = POSIX::strftime( "%Y%m%d", localtime );
348 $string = sprintf( "%-*s", 35, $string );
350 substr( $string, 22, 6, "frey50" );
351 unless ( length($record->subfield( 100, "a" )) == 35 ) {
352 $record->delete_field($record->field(100));
353 $record->insert_grouped_field(
354 MARC::Field->new( 100, "", "", "a" => $string ) );
357 unless ($record_correct) {
358 my $update_xml = $dbh->prepare("update biblioitems set marcxml=? where biblionumber=?");
359 warn "UPDATING $biblionumber (missing biblionumber or biblioitemnumber in MARC record : ".$record->as_xml;
360 $update_xml->execute($record->as_xml,$biblionumber);
362 # remove leader length, that could be wrong, it will be calculated automatically by as_usmarc
363 # otherwise, if it's wron, zebra will fail miserabily (and never index what is after the failing record)
364 my $leader=$record->leader;
365 substr($leader,0,5)=' ';
366 substr($leader,10,7)='22 ';
367 $record->leader(substr($leader,0,24));
368 print OUT $record->as_usmarc();
375 # and reindexing everything
377 print "====================\n";
378 print "REINDEXING zebra\n";
379 print "====================\n";
380 system("zebraidx -g iso2709 -c ".C4::Context->zebraconfig('biblioserver')->{config}." -d biblios init") if ($reset);
381 system("zebraidx -g iso2709 -c ".C4::Context->zebraconfig('biblioserver')->{config}." $noshadow -d biblios update $directory/biblios");
382 system("zebraidx -g iso2709 -c ".C4::Context->zebraconfig('biblioserver')->{config}." -d biblios commit") unless $noshadow;
384 print "skipping biblios\n";
387 print "====================\n";
389 print "====================\n";
391 print "NOTHING cleaned : the export $directory has been kept.\n";
392 print "You can re-run this script with the -s ";
394 print " and -d $directory parameters";
399 print "if you just want to rebuild zebra after changing the record.abs\n";
400 print "or another zebra config file\n";
402 unless ($use_tempdir) {
403 # if we're using a temporary directory
404 # created by File::Temp, it will be removed
406 rmtree($directory, 0, 1);
407 print "directory $directory deleted\n";
413 $0: reindex MARC bibs and/or authorities in Zebra.
415 Use this batch job to reindex all biblio or authority
416 records in your Koha database. This job is useful
417 only if you are using Zebra; if you are using the 'NoZebra'
418 mode, this job should not be used.
421 -b index bibliographic records
423 -a index authority records
425 -r clear Zebra index before
426 adding records to index
428 -d Temporary directory for indexing.
429 If not specified, one is automatically
430 created. The export directory
431 is automatically deleted unless
432 you supply the -k switch.
434 -k Do not delete export directory.
436 -s Skip export. Used if you have
437 already exported the records
440 -noxml index from ISO MARC blob
441 instead of MARC XML. This
442 option is recommended only
445 -w skip shadow indexing for this batch
447 -munge-config Deprecated option to try
448 to fix Zebra config files.
449 --help or -h show this message.
453 # FIXME: the following routines are deprecated and
454 # will be removed once it is determined whether
455 # a script to fix Zebra configuration files is
459 # creating zebra-biblios.cfg depending on system
462 # getting zebraidx directory
464 foreach (qw(/usr/local/bin/zebraidx
473 unless ($zebraidxdir) {
475 ERROR: could not find zebraidx directory
476 ERROR: Either zebra is not installed,
477 ERROR: or it's in a directory I don't checked.
478 ERROR: do a which zebraidx and edit this file to add the result you get
482 $zebraidxdir =~ s/\/bin\/.*//;
483 print "Info : zebra is in $zebraidxdir \n";
485 # getting modules directory
487 foreach (qw(/usr/local/lib/idzebra-2.0/modules/mod-grs-xml.so
488 /usr/local/lib/idzebra/modules/mod-grs-xml.so
489 /usr/lib/idzebra/modules/mod-grs-xml.so
490 /usr/lib/idzebra-2.0/modules/mod-grs-xml.so
497 unless ($modulesdir) {
499 ERROR: could not find mod-grs-xml.so directory
500 ERROR: Either zebra is not properly compiled (libxml2 is not setup and you don t have mod-grs-xml.so,
501 ERROR: or it's in a directory I don't checked.
502 ERROR: find where mod-grs-xml.so is and edit this file to add the result you get
506 $modulesdir =~ s/\/modules\/.*//;
507 print "Info: zebra modules dir : $modulesdir\n";
509 # getting tab directory
511 foreach (qw(/usr/local/share/idzebra/tab/explain.att
512 /usr/local/share/idzebra-2.0/tab/explain.att
513 /usr/share/idzebra/tab/explain.att
514 /usr/share/idzebra-2.0/tab/explain.att
523 ERROR: could not find explain.att directory
524 ERROR: Either zebra is not properly compiled,
525 ERROR: or it's in a directory I don't checked.
526 ERROR: find where explain.att is and edit this file to add the result you get
530 $tabdir =~ s/\/tab\/.*//;
531 print "Info: tab dir : $tabdir\n";
534 # AUTHORITIES creating directory structure
536 my $created_dir_or_file = 0;
538 print "====================\n";
539 print "checking directories & files for authorities\n";
540 print "====================\n";
541 unless (-d "$authorityserverdir") {
542 system("mkdir -p $authorityserverdir");
543 print "Info: created $authorityserverdir\n";
544 $created_dir_or_file++;
546 unless (-d "$authorityserverdir/lock") {
547 mkdir "$authorityserverdir/lock";
548 print "Info: created $authorityserverdir/lock\n";
549 $created_dir_or_file++;
551 unless (-d "$authorityserverdir/register") {
552 mkdir "$authorityserverdir/register";
553 print "Info: created $authorityserverdir/register\n";
554 $created_dir_or_file++;
556 unless (-d "$authorityserverdir/shadow") {
557 mkdir "$authorityserverdir/shadow";
558 print "Info: created $authorityserverdir/shadow\n";
559 $created_dir_or_file++;
561 unless (-d "$authorityserverdir/tab") {
562 mkdir "$authorityserverdir/tab";
563 print "Info: created $authorityserverdir/tab\n";
564 $created_dir_or_file++;
566 unless (-d "$authorityserverdir/key") {
567 mkdir "$authorityserverdir/key";
568 print "Info: created $authorityserverdir/key\n";
569 $created_dir_or_file++;
572 unless (-d "$authorityserverdir/etc") {
573 mkdir "$authorityserverdir/etc";
574 print "Info: created $authorityserverdir/etc\n";
575 $created_dir_or_file++;
579 # AUTHORITIES : copying mandatory files
581 # the record model, depending on marc flavour
582 unless (-f "$authorityserverdir/tab/record.abs") {
583 if (C4::Context->preference("marcflavour") eq "UNIMARC") {
584 system("cp -f $kohadir/etc/zebradb/authorities/etc/record_unimarc.abs $authorityserverdir/tab/record.abs");
585 print "Info: copied record.abs for UNIMARC\n";
587 system("cp -f $kohadir/etc/zebradb/authorities/etc/record.abs $authorityserverdir/tab/record.abs");
588 print "Info: copied record.abs for USMARC\n";
590 $created_dir_or_file++;
592 unless (-f "$authorityserverdir/tab/sort-string-utf.chr") {
593 system("cp -f $kohadir/etc/zebradb/etc/sort-string-utf_french.chr $authorityserverdir/tab/sort-string-utf.chr");
594 print "Info: copied sort-string-utf.chr\n";
595 $created_dir_or_file++;
597 unless (-f "$authorityserverdir/tab/word-phrase-utf.chr") {
598 system("cp -f $kohadir/etc/zebradb/etc/sort-string-utf_french.chr $authorityserverdir/tab/word-phrase-utf.chr");
599 print "Info: copied word-phase-utf.chr\n";
600 $created_dir_or_file++;
602 unless (-f "$authorityserverdir/tab/auth1.att") {
603 system("cp -f $kohadir/etc/zebradb/authorities/etc/bib1.att $authorityserverdir/tab/auth1.att");
604 print "Info: copied auth1.att\n";
605 $created_dir_or_file++;
607 unless (-f "$authorityserverdir/tab/default.idx") {
608 system("cp -f $kohadir/etc/zebradb/etc/default.idx $authorityserverdir/tab/default.idx");
609 print "Info: copied default.idx\n";
610 $created_dir_or_file++;
613 unless (-f "$authorityserverdir/etc/ccl.properties") {
614 # system("cp -f $kohadir/etc/zebradb/ccl.properties ".C4::Context->zebraconfig('authorityserver')->{ccl2rpn});
615 system("cp -f $kohadir/etc/zebradb/ccl.properties $authorityserverdir/etc/ccl.properties");
616 print "Info: copied ccl.properties\n";
617 $created_dir_or_file++;
619 unless (-f "$authorityserverdir/etc/pqf.properties") {
620 # system("cp -f $kohadir/etc/zebradb/pqf.properties ".C4::Context->zebraconfig('authorityserver')->{ccl2rpn});
621 system("cp -f $kohadir/etc/zebradb/pqf.properties $authorityserverdir/etc/pqf.properties");
622 print "Info: copied pqf.properties\n";
623 $created_dir_or_file++;
627 # AUTHORITIES : copying mandatory files
629 unless (-f C4::Context->zebraconfig('authorityserver')->{config}) {
630 open ZD,">:utf8 ",C4::Context->zebraconfig('authorityserver')->{config};
632 # generated by KOHA/misc/migration_tools/rebuild_zebra.pl
633 profilePath:\${srcdir:-.}:$authorityserverdir/tab/:$tabdir/tab/:\${srcdir:-.}/tab/
636 # Files that describe the attribute sets supported.
641 modulePath:$modulesdir/modules/
642 # Specify record type
643 iso2709.recordType:grs.marcxml.record
645 recordId: (auth1,Local-Number)
651 lockDir: $authorityserverdir/lock
654 register: $authorityserverdir/register:4G
655 shadow: $authorityserverdir/shadow:4G
657 # Temp File area for result sets
658 setTmpDir: $authorityserverdir/tmp
660 # Temp File area for index program
661 keyTmpDir: $authorityserverdir/key
663 # Approx. Memory usage during indexing
667 print "Info: creating zebra-authorities.cfg\n";
668 $created_dir_or_file++;
671 if ($created_dir_or_file) {
672 print "Info: created : $created_dir_or_file directories & files\n";
674 print "Info: file & directories OK\n";
679 print "====================\n";
680 print "checking directories & files for biblios\n";
681 print "====================\n";
684 # BIBLIOS : creating directory structure
686 unless (-d "$biblioserverdir") {
687 system("mkdir -p $biblioserverdir");
688 print "Info: created $biblioserverdir\n";
689 $created_dir_or_file++;
691 unless (-d "$biblioserverdir/lock") {
692 mkdir "$biblioserverdir/lock";
693 print "Info: created $biblioserverdir/lock\n";
694 $created_dir_or_file++;
696 unless (-d "$biblioserverdir/register") {
697 mkdir "$biblioserverdir/register";
698 print "Info: created $biblioserverdir/register\n";
699 $created_dir_or_file++;
701 unless (-d "$biblioserverdir/shadow") {
702 mkdir "$biblioserverdir/shadow";
703 print "Info: created $biblioserverdir/shadow\n";
704 $created_dir_or_file++;
706 unless (-d "$biblioserverdir/tab") {
707 mkdir "$biblioserverdir/tab";
708 print "Info: created $biblioserverdir/tab\n";
709 $created_dir_or_file++;
711 unless (-d "$biblioserverdir/key") {
712 mkdir "$biblioserverdir/key";
713 print "Info: created $biblioserverdir/key\n";
714 $created_dir_or_file++;
716 unless (-d "$biblioserverdir/etc") {
717 mkdir "$biblioserverdir/etc";
718 print "Info: created $biblioserverdir/etc\n";
719 $created_dir_or_file++;
723 # BIBLIOS : copying mandatory files
725 # the record model, depending on marc flavour
726 unless (-f "$biblioserverdir/tab/record.abs") {
727 if (C4::Context->preference("marcflavour") eq "UNIMARC") {
728 system("cp -f $kohadir/etc/zebradb/biblios/etc/record_unimarc.abs $biblioserverdir/tab/record.abs");
729 print "Info: copied record.abs for UNIMARC\n";
731 system("cp -f $kohadir/etc/zebradb/biblios/etc/record.abs $biblioserverdir/tab/record.abs");
732 print "Info: copied record.abs for USMARC\n";
734 $created_dir_or_file++;
736 unless (-f "$biblioserverdir/tab/sort-string-utf.chr") {
737 system("cp -f $kohadir/etc/zebradb/etc/sort-string-utf_french.chr $biblioserverdir/tab/sort-string-utf.chr");
738 print "Info: copied sort-string-utf.chr\n";
739 $created_dir_or_file++;
741 unless (-f "$biblioserverdir/tab/word-phrase-utf.chr") {
742 system("cp -f $kohadir/etc/zebradb/etc/sort-string-utf_french.chr $biblioserverdir/tab/word-phrase-utf.chr");
743 print "Info: copied word-phase-utf.chr\n";
744 $created_dir_or_file++;
746 unless (-f "$biblioserverdir/tab/bib1.att") {
747 system("cp -f $kohadir/etc/zebradb/biblios/etc/bib1.att $biblioserverdir/tab/bib1.att");
748 print "Info: copied bib1.att\n";
749 $created_dir_or_file++;
751 unless (-f "$biblioserverdir/tab/default.idx") {
752 system("cp -f $kohadir/etc/zebradb/etc/default.idx $biblioserverdir/tab/default.idx");
753 print "Info: copied default.idx\n";
754 $created_dir_or_file++;
756 unless (-f "$biblioserverdir/etc/ccl.properties") {
757 # system("cp -f $kohadir/etc/zebradb/ccl.properties ".C4::Context->zebraconfig('biblioserver')->{ccl2rpn});
758 system("cp -f $kohadir/etc/zebradb/ccl.properties $biblioserverdir/etc/ccl.properties");
759 print "Info: copied ccl.properties\n";
760 $created_dir_or_file++;
762 unless (-f "$biblioserverdir/etc/pqf.properties") {
763 # system("cp -f $kohadir/etc/zebradb/pqf.properties ".C4::Context->zebraconfig('biblioserver')->{ccl2rpn});
764 system("cp -f $kohadir/etc/zebradb/pqf.properties $biblioserverdir/etc/pqf.properties");
765 print "Info: copied pqf.properties\n";
766 $created_dir_or_file++;
770 # BIBLIOS : copying mandatory files
772 unless (-f C4::Context->zebraconfig('biblioserver')->{config}) {
773 open ZD,">:utf8 ",C4::Context->zebraconfig('biblioserver')->{config};
775 # generated by KOHA/misc/migrtion_tools/rebuild_zebra.pl
776 profilePath:\${srcdir:-.}:$biblioserverdir/tab/:$tabdir/tab/:\${srcdir:-.}/tab/
779 # Files that describe the attribute sets supported.
784 modulePath:$modulesdir/modules/
785 # Specify record type
786 iso2709.recordType:grs.marcxml.record
788 recordId: (bib1,Local-Number)
794 lockDir: $biblioserverdir/lock
797 register: $biblioserverdir/register:4G
798 shadow: $biblioserverdir/shadow:4G
800 # Temp File area for result sets
801 setTmpDir: $biblioserverdir/tmp
803 # Temp File area for index program
804 keyTmpDir: $biblioserverdir/key
806 # Approx. Memory usage during indexing
810 print "Info: creating zebra-biblios.cfg\n";
811 $created_dir_or_file++;
814 if ($created_dir_or_file) {
815 print "Info: created : $created_dir_or_file directories & files\n";
817 print "Info: file & directories OK\n";