rename Couchbase to Store
[cloudstore.git] / store-fsck.pl
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4
5 use Data::Dump qw(dump);
6
7 use lib 'lib';
8 use CloudStore::Store;
9
10 my $login = $ARGV[0] || die "usage: $0 login\n";
11
12 my $store = CloudStore::Store->new;
13
14 my $offset = 0;
15 my $limit  = $ENV{LIMIT} || 10000;
16
17 while(1) {
18         my $r = $store->couchdb(
19                 'http://10.60.0.244:5984/files/_design/files/_view/login_usage?reduce=false&connection_timeout=60000&limit=%d&skip=%d&start_key="%s"&end_key="%s"', $limit, $offset, $login, $login
20         ) || die;
21
22         last if $#{ $r->{rows} } < 1;
23
24         foreach my $row ( @{ $r->{rows} } ) {
25                 my ( $login, $file ) = split(/:/,$row->{id},2);
26                 my $path = "users/$login/blob/$file";
27                 if ( -e $path ) {
28                         warn "+ $path\n";
29                 } else {
30                         $store->remove_file({
31                                 login => $login,
32                                 file  => $file,
33                                 size  => $row->{value},
34                         });
35                         warn "- $path\n";
36                 }
37         }
38
39         $offset += $limit;
40
41 }
42
43 $store->usage_init( $login );
44
45 print dump( $store->user_get( $login ) );
46