+
+sub prune
+{
+ my $dir=shift;
+ return unless(opendir(DIR, $dir));
+ print "Pruning $dir\n";
+ my @oldfiles=$db->files_in($dir);
+ my @newfiles=grep { !/^\.\.?$/; } readdir(DIR);
+ closedir(DIR);
+ @oldfiles=sort @oldfiles;
+ @newfiles=sort @newfiles;
+ my %hash;
+ @hash{@newfiles}=();
+ for my $file (@oldfiles)
+ {
+ unless(exists($hash{$file}))
+ {
+ # FIXME: add path, rebasify
+ $files_pruned=1;
+ $db->unindex($file);
+ }
+ }
+}
+
+
+
+
+sub list_tags
+{
+ my($db)=@_;
+ my @baretags=$db->bare_tags();
+ my $valtags=$db->tags_with_values();
+ if(@baretags)
+ {
+ print "BARE TAGS\n";
+ print join(', ', sort @baretags), "\n\n";
+ }
+ if(keys(%$valtags))
+ {
+ print "TAGS WITH VALUES\n";
+ for my $key (sort keys %$valtags)
+ {
+ print "$key: ", join(', ', sort(@{$valtags->{$key}})), "\n";
+ }
+ }
+}
+