Changeset 360


Ignore:
Timestamp:
01/31/11 13:11:32 (13 years ago)
Author:
nanardon
Message:
  • order package adding/removal according mtime
File:
1 edited

Legend:

Unmodified
Added
Removed
  • server/trunk/web/lib/Sophie/Scan/RpmsPath.pm

    r356 r360  
    3636    my %list; 
    3737    foreach ($self->db->base->resultset('RpmFile')->search( 
    38         { d_path => $self->key } 
    39     )->get_column('filename')->all) { 
    40         $list{$_} = 1; 
     38        { d_path => $self->key }, 
     39        { 'select' => [ qw(filename mtime) ], as => [ qw(filename mtime) ] }, 
     40    )->all) { 
     41        $list{$_->get_column('filename')} = $_->get_column('mtime') || 1; 
    4142    } 
    4243    return \%list; 
     
    4546sub local_ls_rpms { 
    4647    my ($self) = @_; 
    47  
    48     if (opendir(my $dh, $self->path)) { 
     48    my $path = $self->path; 
     49 
     50    if (opendir(my $dh, $path)) { 
    4951        my %list; 
    5052        while (my $entry = readdir($dh)) { 
    5153            $entry eq '.' and next; 
    5254            $entry eq '..' and next; 
    53             $list{$entry} = 1; 
     55            $list{$entry} = (stat("$path/$_"))[9]; 
    5456        } 
    5557        closedir($dh); 
     
    8587            # nothing to do 
    8688        } elsif ($localrpms->{$rpm}) { 
    87             push(@delta, { rpm => $rpm, delta => 'A' }); 
     89            push(@delta, { rpm => $rpm, delta => 'A', mtime => $localrpms->{$rpm} }); 
    8890        } elsif ($baserpms->{$rpm}) { 
    89             push(@delta, { rpm => $rpm, delta => 'R' }); 
    90         } 
    91     } 
    92     @delta; 
     91            push(@delta, { rpm => $rpm, delta => 'R', mtime => $baserpms->{$rpm} }); 
     92        } 
     93    } 
     94    sort { $a->{delta} eq $b->{delta}  
     95        ? $a->{mtime} <=> $b->{mtime} 
     96        : ($a->{delta} eq 'A' ? 1 : -1) 
     97    } @delta; 
    9398} 
    9499 
Note: See TracChangeset for help on using the changeset viewer.