refresh_file_list API call
authorDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 11 Apr 2012 17:22:19 +0000 (19:22 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 11 Apr 2012 17:22:19 +0000 (19:22 +0200)
lib/CloudStore/API.pm
lib/CloudStore/Store.pm

index a166b74..6902520 100644 (file)
@@ -221,6 +221,7 @@ sub send_file {
        if ( $ok ) {
                $self->append( $t, 'recv', $size, $f->{uid}, $t_path );
                $self->append_meta('md5sum', $t, $md5 => $t_path ) if $md5; # md5sum for received files! FIXME -- cross-slice md5
+               $self->refresh_file_list( $t );
        }
 
        return $size;
@@ -245,6 +246,8 @@ sub rename_file {
        $self->append_meta('md5sum', $user, 'rename' => $from );
        $self->append_meta('md5sum', $user, $md5 => $from );
 
+       $self->refresh_file_list( $user );
+
        return $ok;
 }
 
@@ -280,6 +283,8 @@ sub delete {
        $self->append( $user, 'delete', -$deleted_size, $user->{uid}, $path );
        $self->append_meta('md5sum', $user, 'delete', $path );
 
+       $self->refresh_file_list( $user );
+
        return $full_path;
 }
 
@@ -291,4 +296,14 @@ sub file_size {
        return -s $full_path;
 }
 
+sub refresh_file_list {
+       my ( $self, $user ) = @_;
+       $user = $self->user_info($user) unless ref $user eq 'HASH';
+       my $full_path = "$user->{dir}/.meta/files";
+       if ( -e $full_path ) {
+               warn "## refresh_file_list $full_path";
+               unlink $full_path;
+       }
+}
+
 1;
index 520fe48..37a1ecb 100644 (file)
@@ -303,8 +303,10 @@ sub rsync_transfer {
                } else {
                        die "unknown type $type ", dump $data;
                }
+               $self->api->refresh_file_list( $data->{login} );
        } elsif ( $data->{itemize} =~ m/\*deleting/ ) {
                $self->removed_file($data);
+               $self->api->refresh_file_list( $data->{login} );
        } else {
                warn "IGNORED ",dump($data) if $ENV{DEBUG};
        }