--- 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 {
--- a/imager Mon Jul 18 13:46:26 2011 +0200
+++ b/imager Mon Jul 18 22:56:50 2011 +0200
@@ -6,7 +6,7 @@
use POSIX qw(strftime);
use autodie qw(:all);
use Digest::MD5 qw(md5_hex);
-use File::Path qw(make_path);
+use File::Path qw(mkpath);
use File::Basename;
use File::Temp;
use Sys::Hostname;
@@ -37,7 +37,7 @@
-d $DIR or die "$0: $DIR: $!\n";
-make_path($DATA, $IDX);
+mkpath($DATA, $IDX);
my $index = File::Temp->new(DIR => $IDX);
@@ -73,7 +73,7 @@
my $log = sprintf "%6d %s %s" => ($.-1), $cs, $file;
if (!-e "$DATA/$file") {
- make_path dirname("$DATA/$file");
+ mkpath dirname("$DATA/$file");
open(my $out, ">$DATA/$file");
if ($compress) { gzip \$data => $out or die $GzipError }
else { print {$out} $data }