Ignore:
Timestamp:
2010-05-05T14:53:53+12:00 (14 years ago)
Author:
davidb
Message:

Manifest file processing upgraded to support OIDs. The code then uses the archiveinf-doc database to look up which files it uses.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/bin/script/import.pl

    r22011 r22037  
    491491    print STDERR "<Import>\n" if $gli;
    492492   
    493     my $manifest_lookup = new manifest();
     493    my $manifest_lookup = new manifest($collectcfg->{'infodbtype'},$archivedir);
    494494    if ($manifest ne "") { 
    495495    my $manifest_filename = $manifest;
     
    617617        $gsdl_tmp_area = &util::filename_to_regex($gsdl_tmp_area);
    618618        $collect_tmp_area = &util::filename_to_regex($collect_tmp_area);
    619        
    620        
     619                 
    621620        foreach my $df (@deleted_files) {
    622621            next if ($df =~ m/^$gsdl_tmp_area/);
     
    624623           
    625624            push(@filtered_deleted_files,$df);
    626         }
     625        }       
    627626       
    628        
     627
    629628        @deleted_files = @filtered_deleted_files;
    630629       
     
    661660    else
    662661    {
    663     # process any files marked for importing
    664     foreach my $file (keys %{$manifest_lookup->{'import'}}) {
    665         &plugin::read ($pluginfo, $importdir, $file, {}, {}, $processor, $maxdocs, 0, $gli);
    666     }
     662    #
     663    # 1. Process delete files first
     664    #
    667665
    668666    my @deleted_files = keys %{$manifest_lookup->{'delete'}};
    669667    my @full_deleted_files = ();
    670668
    671     foreach my $df (@deleted_files) {
    672         my $full_df = &util::filename_cat($importdir,$df);
     669    # ensure all filenames are absolute
     670    foreach my $df (@deleted_files) {       
     671        my $full_df =
     672        (&util::filename_is_absolute($df))
     673        ? $df
     674        : &util::filename_cat($importdir,$df);
     675
    673676        push(@full_deleted_files,$full_df);
    674677    }
    675 
     678   
     679    &plugin::remove_some($pluginfo, $collectcfg->{'infodbtype'}, $archivedir, \@full_deleted_files);
    676680    &inexport::mark_docs_for_deletion($archive_info,{},
    677681                      \@full_deleted_files,
    678682                      $archivedir, $verbosity, "delete");
     683
     684
     685    #
     686    # 2. Now files for reindexing
     687    #
     688
     689    my @reindex_files = keys %{$manifest_lookup->{'reindex'}};
     690    my @full_reindex_files = ();
     691
     692    # ensure all filenames are absolute
     693    foreach my $rf (@reindex_files) {       
     694        my $full_rf =
     695        (&util::filename_is_absolute($rf))
     696        ? $rf
     697        : &util::filename_cat($importdir,$rf);
     698
     699        push(@full_reindex_files,$full_rf);
     700    }
     701   
     702    &plugin::remove_some($pluginfo, $collectcfg->{'infodbtype'}, $archivedir, \@full_reindex_files);
     703    &inexport::mark_docs_for_deletion($archive_info,{},\@full_reindex_files, $archivedir,$verbosity, "reindex");
     704
     705    # And now ensure the new version of the file processed by appropriate
     706    # plugin
     707    foreach my $full_rf (@full_reindex_files) {
     708        &plugin::read ($pluginfo, "", $full_rf, {}, {}, $processor, $maxdocs, 0, $gli);
     709    }
     710
     711
     712    #
     713    # 3. Now finally any new files
     714    #
     715
     716    foreach my $file (keys %{$manifest_lookup->{'index'}}) {
     717        &plugin::read ($pluginfo, $importdir, $file, {}, {}, $processor, $maxdocs, 0, $gli);
     718    }
     719
     720
    679721    }
    680722
Note: See TracChangeset for help on using the changeset viewer.