VFSsimple::Drv::File - A VFSsimple implementation over real fs


VFSsimple-Drv-File documentation Contained in the VFSsimple-Drv-File distribution.

Index


Code Index:

NAME

Top

VFSsimple::Drv::File - A VFSsimple implementation over real fs

DESCRIPTION

Top

This module provide access method for VFSsimple module to access to file on local filesystem.

SEE ALSO

Top

VFSsimple

LICENSE AND COPYRIGHT

Top


VFSsimple-Drv-File documentation Contained in the VFSsimple-Drv-File distribution.
package VFSsimple::Drv::File;

use strict;
use warnings;
use base qw(VFSsimple::Base);
use File::Copy ();

our $VERSION = '0.03';

sub drv_new {
    my ($self) = @_;
    my $r = $self->{root};
    $r =~ s@^\w+:/+@@;
    $self->{realroot} = "/$r";
    return -d $self->{realroot} ? $self : ();
}

sub drv_get {
    my ($self, $src) = @_;
    return $self->{realroot} . '/' . $src;
}

sub drv_copy {
    my ($self, $src, $dest) = @_;
    return File::Copy::copy($self->{realroot} . '/' . $src, $dest) ? $dest : ();
}

sub drv_open {
    my ($self, $src) = @_;
    if (open(my $handle, '<', $self->{realroot} . '/' . $src)) {
        return $handle;
    } else {
        return;
    }
}

sub exists {
    my ($self, $file) = @_;
    return(stat("$self->{realroot}/$file") != 0);
}

1;

__END__