--- 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 {