--- trunk/DBI.pm 2004/10/08 23:43:06 28 +++ trunk/DBI.pm 2004/11/16 15:34:25 36 @@ -13,7 +13,7 @@ use Data::Dumper; -our $VERSION = '0.04'; +our $VERSION = '0.05'; =head1 NAME @@ -29,7 +29,7 @@ =head1 DESCRIPTION This module will use C module, part of C -available at L to mount +available at L to mount your database as file system. That will give you possibility to use normal file-system tools (cat, grep, vi) @@ -148,6 +148,7 @@ my $pid; if ($arg->{'fork'}) { + $self->{'mounted'} = 1; $pid = fork(); die "fork() failed: $!" unless defined $pid; # child will return to caller @@ -169,7 +170,7 @@ $self->{'read_filenames'} = sub { $self->read_filenames }; $self->read_filenames; - $self->{'mounted'} = 1; + $self->{'mounted'} = 1 unless ($arg->{'fork'}); $fuse_self = \$self; @@ -211,7 +212,7 @@ my $self = shift; if ($self->{'mounted'}) { - system "fusermount -u ".$self->{'mount'} || croak "umount error: $!"; + system "fusermount -u ".$self->{'mount'} || warn "umount error: $!" && return 0; } return 1; @@ -342,7 +343,7 @@ my %out; foreach my $f (sort keys %files) { if ($dirname) { - if ($f =~ s/^\E$dirname\Q\///) { + if ($f =~ s/^\Q$dirname\E\///) { $out{$f}++ if ($f =~ /^[^\/]+$/); } } else { @@ -364,7 +365,8 @@ $sth->{'read'}->execute($id) || die $sth->{'read'}->errstr; $files{$file}{cont} = $sth->{'read'}->fetchrow_array; - $files{$file}{ctime} = time(); + # I should modify ctime only if content in database changed + #$files{$file}{ctime} = time() unless ($files{$file}{ctime}); print "file '$file' content [",length($files{$file}{cont})," bytes] read in cache\n"; } @@ -410,6 +412,7 @@ print "invalidate all cached content\n"; foreach my $f (keys %files) { delete $files{$f}{cont}; + delete $files{$f}{ctime}; } print "begin new transaction\n"; #$dbh->begin_work || die $dbh->errstr; @@ -521,10 +524,10 @@ =head1 SEE ALSO C website -L +L Example for WebGUI which comes with this distribution in -directory L. It also contains a lot of documentation +directory C. It also contains a lot of documentation about design of this module, usage and limitations. =head1 AUTHOR