# HG changeset patch # User root@muli3.is.schlittermann.de # Date 1311022610 -7200 # Node ID 79eb9a0609afc2466b299795f8f256fdc03745c0 # Parent d5d051a56a87747e8d7872383c2993f31557330a compatibility with older File::Path, Debug-Option 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 { diff -r d5d051a56a87 -r 79eb9a0609af imager --- 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 }