- Timestamp:
- 2023-01-28T23:08:43+13:00 (15 months ago)
- Location:
- main/trunk/greenstone2/perllib
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/perllib/FileUtils.pm
r37194 r37200 244 244 } 245 245 246 sub copyFilesDEPRECATED247 {248 my $dest = pop (@_);249 my (@srcfiles) = @_;250 251 # remove trailing slashes from source and destination files252 $dest =~ s/[\\\/]+$//;253 map {$_ =~ s/[\\\/]+$//;} @srcfiles;254 255 # a few sanity checks256 if (scalar (@srcfiles) == 0)257 {258 print STDERR "FileUtils::copyFiles() no destination directory given\n";259 return 0;260 }261 elsif ((scalar(@srcfiles) > 1) && (!-d $dest))262 {263 print STDERR "FileUtils::copyFiles() if multiple source files are given the destination must be a directory\n";264 return 0;265 }266 267 my $had_an_error = 0;268 269 # copy the files270 foreach my $file (@srcfiles)271 {272 my $tempdest = $dest;273 if (-d $tempdest)274 {275 my ($filename) = $file =~ /([^\\\/]+)$/;276 $tempdest .= "/$filename";277 }278 if (!-e $file)279 {280 print STDERR "FileUtils::copyFiles() $file does not exist\n";281 $had_an_error = 1;282 }283 elsif (!-f $file)284 {285 print STDERR "FileUtils::copyFiles() $file is not a regular file\n";286 $had_an_error = 1;287 }288 else289 {290 my $success = &File::Copy::copy ($file, $tempdest);291 if (!$success) {292 $had_an_error = 1;293 }294 }295 }296 297 if ($had_an_error) {298 return 0;299 }300 else {301 # true => everything OK302 return 1;303 }304 305 }306 246 ## copyFiles() 307 247 … … 391 331 return ($ret_val_success,$fullpath_files_and_dirs); 392 332 } 393 394 sub readdirFullpathDEPRECATED395 {396 my ($src_dir_fullpath,$options) = @_;397 398 my $ret_val_success = 1; # default (true) is to assume things will work out!399 400 my $fullpath_files_and_dirs = [];401 402 my $exclude_filter_re = undef;403 my $include_filter_re = undef;404 if (defined $options) {405 $exclude_filter_re = $options->{'exclude_filter_re'};406 $include_filter_re = $options->{'include_filter_re'};407 }408 409 # get the contents of this directory410 if (!opendir(INDIR, $src_dir_fullpath))411 {412 print STDERR "FileUtils::readdirFullpath() could not open directory $src_dir_fullpath\n";413 $ret_val_success = 0;414 }415 else416 {417 my @next_files_and_dirs = readdir(INDIR);418 closedir (INDIR);419 420 foreach my $f_or_d (@next_files_and_dirs)421 {422 next if $f_or_d =~ /^\.\.?$/;423 next if (defined $exclude_filter_re && ($f_or_d =~ m/$exclude_filter_re/));424 425 if ((!defined $include_filter_re) || ($f_or_d =~ m/$include_filter_re/)) {426 my $ff_or_dd = &filenameConcatenate($src_dir_fullpath, $f_or_d);427 push(@$fullpath_files_and_dirs,$ff_or_dd);428 }429 }430 431 }432 433 return ($ret_val_success,$fullpath_files_and_dirs);434 }435 436 333 437 334 … … 646 543 } 647 544 648 sub copyFilesRecursiveDEPRECATED649 {650 my $dest = pop (@_);651 my (@srcfiles) = @_;652 653 # a few sanity checks654 if (scalar (@srcfiles) == 0)655 {656 print STDERR "FileUtils::copyFilesRecursive() no destination directory given\n";657 return;658 }659 elsif (-f $dest)660 {661 print STDERR "FileUtils::copyFilesRecursive() destination must be a directory\n";662 return;663 }664 665 # create destination directory if it doesn't exist already666 if (! -d $dest)667 {668 my $store_umask = umask(0002);669 mkdir ($dest, 0777);670 umask($store_umask);671 }672 673 # copy the files674 foreach my $file (@srcfiles)675 {676 677 if (!-e $file)678 {679 print STDERR "FileUtils::copyFilesRecursive() $file does not exist\n";680 }681 elsif (-d $file)682 {683 # make the new directory684 my ($filename) = $file =~ /([^\\\/]*)$/;685 $dest = &filenameConcatenate($dest, $filename);686 my $store_umask = umask(0002);687 mkdir ($dest, 0777);688 umask($store_umask);689 690 # get the contents of this directory691 if (!opendir (INDIR, $file))692 {693 print STDERR "FileUtils::copyFilesRecursive() could not open directory $file\n";694 }695 else696 {697 my @filedir = readdir (INDIR);698 closedir (INDIR);699 foreach my $f (@filedir)700 {701 next if $f =~ /^\.\.?$/;702 # copy all the files in this directory703 my $ff = &filenameConcatenate($file, $f);704 ©FilesRecursiveDEPRECATED($ff ,$dest);705 }706 }707 708 }709 else710 {711 ©Files($file, $dest);712 }713 }714 }715 545 ## copyFilesRecursive() 716 546 … … 733 563 } 734 564 735 sub copyFilesRecursiveNoSVNDEPRECATED 565 ## copyFilesRecursiveNoSVN() 566 567 568 ## @function copyFilesRecursiveTopLevel() 569 # 570 # copies a directory and its contents, excluding subdirectories, into a new directory 571 # 572 # another candidate for merging in with copyFilesRecursive() - jmt12 573 # 574 sub copyFilesRecursiveTopLevel 736 575 { 737 576 my $dest = pop (@_); 738 577 my (@srcfiles) = @_; 739 578 740 # a few sanity checks741 if (scalar (@srcfiles) == 0)742 {743 print STDERR "FileUtils::copyFilesRecursiveNoSVN() no destination directory given\n";744 return;745 }746 elsif (-f $dest)747 {748 print STDERR "FileUtils::copyFilesRecursiveNoSVN() destination must be a directory\n";749 return;750 }751 752 # create destination directory if it doesn't exist already753 if (! -d $dest)754 {755 my $store_umask = umask(0002);756 mkdir ($dest, 0777);757 umask($store_umask);758 }759 760 # copy the files761 foreach my $file (@srcfiles)762 {763 if (!-e $file)764 {765 print STDERR "copyFilesRecursiveNoSVN() $file does not exist\n";766 }767 elsif (-d $file)768 {769 # make the new directory770 my ($filename) = $file =~ /([^\\\/]*)$/;771 $dest = &filenameConcatenate($dest, $filename);772 my $store_umask = umask(0002);773 mkdir ($dest, 0777);774 umask($store_umask);775 776 # get the contents of this directory777 if (!opendir (INDIR, $file))778 {779 print STDERR "copyFilesRecursiveNoSVN() could not open directory $file\n";780 }781 else782 {783 my @filedir = readdir (INDIR);784 closedir (INDIR);785 foreach my $f (@filedir)786 {787 next if $f =~ /^\.\.?$/;788 next if $f =~ /^\.svn$/;789 # copy all the files in this directory790 my $ff = &filenameConcatenate($file, $f);791 # util.pm version incorrectly called cp_r here - jmt12792 ©FilesRecursiveNoSVNDEPRECATED($ff ,$dest);793 }794 }795 }796 else797 {798 ©Files($file, $dest);799 }800 }801 }802 ## copyFilesRecursiveNoSVN()803 804 805 ## @function copyFilesRecursiveTopLevel()806 #807 # copies a directory and its contents, excluding subdirectories, into a new directory808 #809 # another candidate for merging in with copyFilesRecursive() - jmt12810 #811 sub copyFilesRecursiveTopLevel812 {813 my $dest = pop (@_);814 my (@srcfiles) = @_;815 816 579 return _copyFilesRecursiveGeneral(\@srcfiles,$dest, 0, { 'copytype' => "toplevel" } ); 817 580 } 818 581 819 sub copyFilesRecursiveTopLevelDEPRECATED820 {821 my $dest = pop (@_);822 my (@srcfiles) = @_;823 824 # a few sanity checks825 if (scalar (@srcfiles) == 0)826 {827 print STDERR "FileUtils::copyFilesRecursiveTopLevel() no destination directory given\n";828 return;829 }830 elsif (-f $dest)831 {832 print STDERR "FileUtils::copyFilesRecursiveTopLevel() destination must be a directory\n";833 return;834 }835 836 # create destination directory if it doesn't exist already837 if (! -d $dest)838 {839 my $store_umask = umask(0002);840 mkdir ($dest, 0777);841 umask($store_umask);842 }843 844 # copy the files845 foreach my $file (@srcfiles)846 {847 if (!-e $file)848 {849 print STDERR "FileUtils::copyFilesRecursiveTopLevel() $file does not exist\n";850 }851 elsif (-d $file)852 {853 # make the new directory854 my ($filename) = $file =~ /([^\\\/]*)$/;855 $dest = &filenameConcatenate($dest, $filename);856 my $store_umask = umask(0002);857 mkdir ($dest, 0777);858 umask($store_umask);859 860 # get the contents of this directory861 if (!opendir (INDIR, $file))862 {863 print STDERR "FileUtils::copyFilesRecursiveTopLevel() could not open directory $file\n";864 }865 else866 {867 my @filedir = readdir (INDIR);868 closedir (INDIR);869 foreach my $f (@filedir)870 {871 next if $f =~ /^\.\.?$/;872 873 # copy all the files in this directory, but not directories874 my $ff = &filenameConcatenate($file, $f);875 if (-f $ff)876 {877 ©Files($ff, $dest);878 #&cp_r ($ff, $dest);879 }880 }881 }882 }883 else884 {885 ©Files($file, $dest);886 }887 }888 }889 582 ## copyFilesRecursiveTopLevel() 890 583 … … 1599 1292 return $files_and_dirs; 1600 1293 } 1601 1602 1603 sub readDirectoryDEPRECATED1604 {1605 my $path = shift(@_);1606 my @files;1607 if (opendir(DH, $path))1608 {1609 @files = readdir(DH);1610 close(DH);1611 }1612 else1613 {1614 die("Error! Failed to open directory list files: " . $path . "\n");1615 }1616 return \@files;1617 }1618 1294 ## readDirectory() 1619 1295 -
main/trunk/greenstone2/perllib/inexport.pm
r37194 r37200 134 134 'reqd' => "no", 135 135 'hiddengli' => "yes" }, 136 { 'name' => 'assocfile_copymode', 137 'desc' => "{import.assocfile_copymode}", 138 'type' => 'enum', 139 'list' => [ { 'name' => "copy", 'desc' => "{import.assocfile_copymode_copy}" }, 140 { 'name' => "hardlink", 'desc' => "{import.assocfile_copymode_hardlink}" } ], 141 'deft' => 'copy', 142 'reqd' => 'yes', 143 'hiddengli' => 'no'}, 136 144 { 'name' => "language", 137 145 'desc' => "{scripts.language}", … … 787 795 if (defined $collectcfg->{'plugout'} && $collectcfg->{'plugout'} =~ /^(GreenstoneXML|.*METS|DSpace|MARCXML)Plugout/) { 788 796 $plugout = $collectcfg->{'plugout'}; 789 print STDERR "Using plugout specified in collect.cfg : $collectcfg->{'plugout'}\n";797 print STDERR "Using plugout specified in collect.cfg/collectionConfig.xml: $collectcfg->{'plugout'}\n"; 790 798 } 791 799 else { … … 805 813 push @$plugout,("-gzip_output") if ($gzip); 806 814 push @$plugout,("-output_handle",$out) if (defined $out); 807 push @$plugout,("-site",$self->{'site'}) if (defined $self->{'site'}); 808 815 push @$plugout,("-site",$self->{'site'}) if (defined $self->{'site'}); 809 816 push @$plugout,("-xslt_file",$xsltfile) if (defined $xsltfile && $xsltfile ne ""); 817 818 push @$plugout,("-assocfile_copymode",$self->{'assocfile_copymode'}) if (defined $self->{'assocfile_copymode'}); 810 819 push @$plugout, ("-no_auxiliary_databases") if ($generate_auxiliary_files == 0); 820 811 821 if ($inexport_mode eq "import") { 812 822 if ($plugout_name =~ m/^GreenstoneXMLPlugout$/) { -
main/trunk/greenstone2/perllib/plugouts/BasePlugout.pm
r36106 r37200 45 45 46 46 my $arguments = [ 47 48 49 50 51 47 { 'name' => "site", 48 'desc' => "{BasPlugout.site}", 49 'type' => "string", 50 'reqd' => "no", 51 'hiddengli' => "yes" }, 52 52 { 'name' => "xslt_file", 53 53 'desc' => "{BasPlugout.xslt_file}", 54 54 'type' => "string", 55 55 'reqd' => "no", 56 56 'deft' => "", 57 57 'hiddengli' => "no"}, 58 58 { 'name' => "subdir_split_length", 59 60 61 62 63 59 'desc' => "{BasPlugout.subdir_split_length}", 60 'type' => "int", 61 'reqd' => "no", 62 'deft' => "8", 63 'hiddengli' => "no"}, 64 64 { 'name' => "subdir_hash_prefix", 65 66 67 68 69 65 'desc' => "{BasPlugout.subdir_hash_prefix}", 66 'type' => "flag", 67 'reqd' => "no", 68 'deft' => "0", 69 'hiddengli' => "no"}, 70 70 { 'name' => "gzip_output", 71 71 'desc' => "{BasPlugout.gzip_output}", … … 73 73 'reqd' => "no", 74 74 'hiddengli' => "no"}, 75 75 { 'name' => "verbosity", 76 76 'desc' => "{BasPlugout.verbosity}", 77 77 'type' => "int", … … 79 79 'reqd' => "no", 80 80 'hiddengli' => "no"}, 81 { 'name' => "output_info",81 { 'name' => "output_info", 82 82 'desc' => "{BasPlugout.output_info}", 83 83 'type' => "string", … … 91 91 'hiddengli' => "yes"}, 92 92 { 'name' => "debug", 93 94 95 96 93 'desc' => "{BasPlugout.debug}", 94 'type' => "flag", 95 'reqd' => "no", 96 'hiddengli' => "yes"}, 97 97 { 'name' => 'no_rss', 98 99 100 101 98 'desc' => "{BasPlugout.no_rss}", 99 'type' => 'flag', 100 'reqd' => 'no', 101 'hiddengli' => 'yes'}, 102 102 { 'name' => 'rss_title', 103 'desc' => "{BasPlugout.rss_title}", 104 'type' => 'string', 105 'deft' => 'dc.Title', 106 'reqd' => 'no', 107 'hiddengli' => 'yes'}, 108 { 'name' => "no_auxiliary_databases", 109 'desc' => "{BasPlugout.no_auxiliary_databases}", 110 'type' => "flag", 111 'reqd' => "no", 112 'hiddengli' => "yes"} 103 'desc' => "{BasPlugout.rss_title}", 104 'type' => 'string', 105 'deft' => 'dc.Title', 106 'reqd' => 'no', 107 'hiddengli' => 'yes'}, 108 { 'name' => 'assocfile_copymode', 109 'desc' => "{import.assocfile_copymode}", 110 'type' => 'enum', 111 'list' => [ { 'name' => "copy", 'desc' => "{import.assocfile_copymode_copy}" }, 112 { 'name' => "hardlink", 'desc' => "{import.assocfile_copymode_hardlink}" } ], 113 'deft' => 'copy', 114 'reqd' => 'yes', 115 'hiddengli' => 'no'}, 116 { 'name' => "no_auxiliary_databases", 117 'desc' => "{BasPlugout.no_auxiliary_databases}", 118 'type' => "flag", 119 'reqd' => "no", 120 'hiddengli' => "yes"} 113 121 114 122 ]; … … 169 177 } 170 178 171 179 172 180 if(defined $self->{'xslt_file'} && $self->{'xslt_file'} ne "") 173 181 { … … 812 820 $filename = &FileUtils::filenameConcatenate($working_dir, $afile); 813 821 814 &FileUtils::hardLink($real_filename, $filename, $self->{'verbosity'}); 822 if ($self->{'assocfile_copymode'} eq "hardlink") { 823 &FileUtils::hardLink($real_filename, $filename, $self->{'verbosity'}); # Consider adding in 'strict' option?? 824 } 825 else { 826 &FileUtils::copyFilesGeneral([$real_filename], $filename); # Consider adding in 'strict' option?? 827 } 815 828 816 829 $doc_obj->add_utf8_metadata ($doc_obj->get_top_section(), -
main/trunk/greenstone2/perllib/plugouts/DSpacePlugout.pm
r32511 r37200 290 290 291 291 $filename = &FileUtils::filenameConcatenate($working_dir, $tail_filename); 292 &FileUtils::hardLink ($source_filename, $filename, $self->{'verbosity'}); 292 if ($self->{'assocfile_copymode'} eq "hardlink") { 293 &FileUtils::hardLink ($source_filename, $filename, $self->{'verbosity'}); # Consider adding in 'strict' option?? 294 } 295 else { 296 &FileUtils::copyFilesGeneral([$source_filename], $filename); # Consider adding in 'strict' option?? 297 } 293 298 294 299 # set the assocfile path (even if we have no assoc files - need this for lucene) … … 326 331 327 332 if ($afile ne "cover.jpg") { 328 &FileUtils::hardLink ($real_filename, $filename, $self->{'verbosity'}); 329 $doc_obj->add_utf8_metadata ($doc_obj->get_top_section(), 330 "gsdlassocfile", 331 "$afile:$assoc_file_rec->[2]:$dir"); 333 if ($self->{'assocfile_copymode'} eq "hardlink") { 334 &FileUtils::hardLink($real_filename, $filename, $self->{'verbosity'}); # Consider adding in 'strict' option?? 335 } 336 else { 337 &FileUtils::copyFilesGeneral([$real_filename], $filename); # Consider adding in 'strict' option?? 338 } 339 $doc_obj->add_utf8_metadata ($doc_obj->get_top_section(), 340 "gsdlassocfile", 341 "$afile:$assoc_file_rec->[2]:$dir"); 332 342 } 333 343 } elsif ($self->{'verbosity'} > 2) {
Note:
See TracChangeset
for help on using the changeset viewer.