diff -r d5d051a56a87 -r 79eb9a0609af fuse --- a/fuse Mon Jul 18 13:46:26 2011 +0200 +++ b/fuse Mon Jul 18 22:56:50 2011 +0200 @@ -4,17 +4,23 @@ use strict; use warnings; use autodie qw(:all); - +use Getopt::Long; use Fuse; -my $src = shift // die "need source directory\n"; -my $mp = shift // die "need mountpoint\n"; +my $opt_debug = 0; + +GetOptions("debug!" => \$opt_debug) + and @ARGV == 2 + or die "Bad Usage\n"; + +my $src = shift; +my $mp = shift; $fs::DATA = "$src/data"; $fs::IDX = "$src/idx"; Fuse::main(mountpoint => $mp, - debug => 0, + debug => $opt_debug, getattr => "fs::getattr", getdir => "fs::getdir", open => "fs::openfile", @@ -34,15 +40,18 @@ my %CACHE; sub getattr { - my $path = $IDX . shift; - return stat $path if $path eq "$IDX/"; - # rest are the idx - my @attr = stat $path or return -(ENOENT); - my %meta = _get_meta($path); - $attr[7] = $meta{devsize}; - $attr[9] = $meta{timestamp}; - $attr[2] &= ~0222; # r/o - return @attr; + my $path = $IDX . shift; + return stat $path if -d $path; + # rest are the idx + my @attr = stat $path or return -(ENOENT); + my %meta = _get_meta($path); + use Data::Dumper; + warn Dumper \%meta; + $attr[7] = $meta{devsize}; + $attr[9] = $meta{timestamp}; + $attr[2] &= ~0222; # r/o + warn Dumper \@attr; + return @attr; } sub getdir {