Changeset 344


Ignore:
Timestamp:
01/24/11 19:06:18 (13 years ago)
Author:
nanardon
Message:
  • add tools to rescan rpm
  • index desktop files (only if in /usr/share/applications)
Location:
server/trunk/web
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • server/trunk/web/lib/Sophie/Base/Result/BinFiles.pm

    r342 r344  
    77__PACKAGE__->table('binfiles'); 
    88__PACKAGE__->add_columns(qw/dirnamekey pkgid count basename md5 user group linkto 
    9     mode fflags size class color vflags mtime nlink has_content/); 
     9    mode fflags size class color vflags mtime nlink has_content contents/); 
    1010__PACKAGE__->set_primary_key(qw/pkgid count/); 
    1111__PACKAGE__->belongs_to(Rpms => 'Sophie::Base::Result::Rpms', 'pkgid'); 
  • server/trunk/web/lib/Sophie/Scan.pm

    r337 r344  
    6868} 
    6969 
     70sub call_plugins_parser { 
     71    my ($self, $rpm, $pkgid, $new) = @_; 
     72    foreach my $plugins (qw'sources') { 
     73        $self->call_plugin_parser($plugins, $rpm, $pkgid, $new); 
     74    } 
     75} 
     76 
     77sub call_plugin_parser { 
     78    my ($self, $plugins, $rpm, $pkgid, $new) = @_; 
     79    my $mod = ucfirst(lc($plugins)); 
     80    eval "require Sophie::Scan::RpmParser::$mod;"; 
     81    warn $@ if($@); 
     82    eval { 
     83        my $parser = "Sophie::Scan::RpmParser::$mod"->new($self); 
     84        $parser->run($rpm, $pkgid, $new); 
     85    } 
     86} 
     87 
    70881; 
  • server/trunk/web/lib/Sophie/Scan/RpmParser.pm

    r341 r344  
    2525        close($cpioh); 
    2626    } else { 
     27        warn $!; 
    2728        return 0; 
    2829    } 
  • server/trunk/web/lib/Sophie/Scan/RpmsPath.pm

    r335 r344  
    148148    warn "$$ adding $rpm"; 
    149149    eval { 
    150     my ($pkgid, $new) = $self->db->base->storage->txn_do( 
    151         sub { 
    152             my ($pkgid, $new) = $self->_add_header($rpm); 
    153             if (defined($pkgid)) { 
    154                 $pkgid or return; 
    155                 $self->db->base->resultset('RpmFile')->create( 
    156                     { 
    157                         d_path => $self->key, 
    158                         filename => $rpm, 
    159                         pkgid => $pkgid, 
    160                     } 
    161                 );  
    162                 return $pkgid, $new; 
    163             } 
    164         }, 
    165     ); 
    166     foreach my $plugins (qw'sources') { 
    167         my $mod = ucfirst(lc($plugins)); 
    168         eval "require Sophie::Scan::RpmParser::$mod;"; 
    169         warn $@ if($@); 
    170         eval { 
    171             my $parser = "Sophie::Scan::RpmParser::$mod"->new($self->db); 
    172             $parser->run($self->path . '/' . $rpm, $pkgid, $new); 
    173         } 
    174     } 
    175     } 
     150        my ($pkgid, $new) = $self->db->base->storage->txn_do( 
     151            sub { 
     152                my ($pkgid, $new) = $self->_add_header($rpm); 
     153                if (defined($pkgid)) { 
     154                    $pkgid or return; 
     155                    $self->db->base->resultset('RpmFile')->create( 
     156                        { 
     157                            d_path => $self->key, 
     158                            filename => $rpm, 
     159                            pkgid => $pkgid, 
     160                        } 
     161                    );  
     162                    return $pkgid, $new; 
     163                } 
     164            }, 
     165        ); 
     166        $self->db->call_plugins_parser($self->path . '/' . $rpm, $pkgid, $new); 
     167    }; 
    176168} 
    177169 
Note: See TracChangeset for help on using the changeset viewer.