App-Followme
view release on metacpan or search on metacpan
lib/App/Followme/UploadLocal.pm view on Meta::CPAN
if ($status) {
my $permissions = $self->{permissions} | 0111;
chmod($permissions, $new_dir);
}
return $status;
}
#----------------------------------------------------------------------
# Add a file to the remote site
sub add_file {
my ($self, $local_filename, $remote_filename) = @_;
my $new_file = catfile($self->{remote_directory}, $remote_filename);
my $status = copy($local_filename, $new_file);
chmod($self->{permissions}, $new_file) if $status;
return $status;
}
#----------------------------------------------------------------------
# Close the connection
sub close {
my ($self) = @_;
return;
}
#----------------------------------------------------------------------
# Delete a directory from the remote site
sub delete_directory {
my ($self, $dir) = @_;
my $err;
my $new_dir = catfile($self->{remote_directory}, $dir);
remove_tree($new_dir, {error => $err});
my $status = ! ($err && @$err);
return $status;
}
#----------------------------------------------------------------------
# Delete a file from the remote site
sub delete_file {
my ($self, $filename) = @_;
my $new_file = catfile($self->{remote_directory}, $filename);
my $status = unlink($new_file);
return $status;
}
#----------------------------------------------------------------------
# Open the connection to the remote site
sub open {
my ($self, $user, $password) = @_;
# Check existence of remote directory
my $found = $self->{remote_directory} && -e $self->{remote_directory};
die "Could not find remote_directory: $self->{remote_directory}"
unless $found;
return;
}
1;
__END__
=encoding utf-8
=head1 NAME
App::Followme::UploadLocal - Upload files through file copy
=head1 SYNOPSIS
my $uploader = App::Followme::UploadLocal->new(\%configuration);
$uploader->open();
$uploader->add_directory($dir);
$uploader->add_file($filename);
$uploader->delete_directory($dir);
$uploader->delete_file($filename);
$uploader->close();
=head1 DESCRIPTION
L<App::Followme::UploadSite> splits off methods that do the actual uploading
into a separate package, so it can support more than one method. This package
uploads files to the server using a simple file copy.
=head1 METHODS
The following are the public methods of the interface. The return value
indicates if the operation was successful.
=over 4
=item $flag = $self->add_directory($dir);
Create a new directory
=item $flag = $self->add_file($filename);
Upload a new file. If it already exists, delete it.
=item $self->close();
Close the connection to the remote site.
=item $flag = $self->delete_directory($dir);
Delete a directory, including any files it might hold.
=item $flag = $self->delete_file($filename);
Delete a file on the remote site.
( run in 1.150 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )