equal
deleted
inserted
replaced
5 # $URL$ |
5 # $URL$ |
6 |
6 |
7 use constant USAGE => <<'#'; |
7 use constant USAGE => <<'#'; |
8 |
8 |
9 Usage: !ME! --insert item [delay [db]] # insert an item |
9 Usage: !ME! --insert item [delay [db]] # insert an item |
|
10 !ME! --remove item # remove an item |
10 !ME! --list [db] # list all items |
11 !ME! --list [db] # list all items |
11 !ME! --stat [db* ...] # print short statistic |
12 !ME! --stat [db* ...] # print short statistic |
12 !ME! --clean [days [db* ...]] # remove items not used since <days> days |
13 !ME! --clean [days [db* ...]] # remove items not used since <days> days |
13 !ME! --purge [days [db* ...]] # remove items older than <days> days |
14 !ME! --purge [days [db* ...]] # remove items older than <days> days |
14 !ME! --dbs [db* ...] # list data base(s) |
15 !ME! --dbs [db* ...] # list data base(s) |
41 my $opt_insert; |
42 my $opt_insert; |
42 my $opt_help; |
43 my $opt_help; |
43 my $opt_clean; |
44 my $opt_clean; |
44 my $opt_purge; |
45 my $opt_purge; |
45 my $opt_dbs; |
46 my $opt_dbs; |
|
47 my $opt_remove; |
46 |
48 |
47 sub getDBs(@); |
49 sub getDBs(@); |
48 sub iterate(\%$); |
50 sub iterate(\%$); |
49 |
51 |
50 MAIN: { |
52 MAIN: { |
51 |
53 |
52 GetOptions( |
54 GetOptions( |
53 "list!" => \$opt_list, |
55 "list!" => \$opt_list, |
54 "insert!" => \$opt_insert, |
56 "insert!" => \$opt_insert, |
|
57 "remove!" => \$opt_remove, |
55 "stats!" => \$opt_stats, |
58 "stats!" => \$opt_stats, |
56 "clean!" => \$opt_clean, |
59 "clean!" => \$opt_clean, |
57 "purge!" => \$opt_purge, |
60 "purge!" => \$opt_purge, |
58 "dbs!" => \$opt_dbs, |
61 "dbs!" => \$opt_dbs, |
59 "help!" => \$opt_help, |
62 "help!" => \$opt_help, |
159 |
162 |
160 if ($opt_insert) { |
163 if ($opt_insert) { |
161 print unseen(@ARGV); |
164 print unseen(@ARGV); |
162 exit 0; |
165 exit 0; |
163 } |
166 } |
|
167 |
|
168 if ($opt_remove) { |
|
169 my %default = getDefault(); |
|
170 my $item = shift; |
|
171 my $db = shift // $default{db}; |
|
172 |
|
173 my $key = "$item\0"; |
|
174 |
|
175 connectDB(\my %h, $db); |
|
176 if (not exists $h{$key}) { |
|
177 warn "$0: not found\n"; |
|
178 } |
|
179 else { |
|
180 $_ = delete $h{$key}; |
|
181 s/\0$/\n/; |
|
182 print; |
|
183 } |
|
184 exit 0; |
|
185 } |
164 } |
186 } |
165 |
187 |
166 sub getDBs(@) { |
188 sub getDBs(@) { |
167 grep { -f } |
189 grep { !/\.lock$/ } grep { -f -s } |
168 map { m(^\.?/) ? glob($_) : glob(getDBDir() . "/$_") } @_ ? @_ : "*"; |
190 map { m(^\.?/) ? glob($_) : glob(getDBDir() . "/$_") } @_ ? @_ : "*"; |
169 } |
191 } |
170 |
192 |
171 # Helper to iterate over our hash and call the passed |
193 # Helper to iterate over our hash and call the passed |
172 # "callback" function (item, v0, v1, count) |
194 # "callback" function (item, v0, v1, count) |