App-Nopaste

 view release on metacpan or  search on metacpan

lib/App/Nopaste/Service/ssh.pm  view on Meta::CPAN

use warnings;
package App::Nopaste::Service::ssh;
# ABSTRACT: Copies files to your server using scp

our $VERSION = '1.013';

use parent 'App::Nopaste::Service';
use File::Temp;
use File::Spec;
use POSIX qw(strftime);
use URI::Escape qw(uri_escape);
use namespace::clean 0.19;

sub run {
    my ($self, %args) = @_;

    my $source = $args{'filename'};

    my $server  = $ENV{NOPASTE_SSH_SERVER}  || return (0,"No NOPASTE_SSH_SERVER set");
    my $docroot = $ENV{NOPASTE_SSH_DOCROOT} || return (0, "No NOPASTE_SSH_DOCROOT set");
    my $topurl  = $ENV{NOPASTE_SSH_WEBPATH} || "http://$server";

lib/App/Nopaste/Service/ssh.pm  view on Meta::CPAN

        or return (0, "Can't write to tempfile $filename");
    close $tmp
        or return (0, "Can't write to tempfile $filename");

    chmod oct($mode), $filename
        if defined $mode;

    system('scp', '-pq', $filename, "$server:$docroot");

    my $file = ( File::Spec->splitpath($filename) )[2];
    $file = uri_escape($file);
    $file =~ s/%2b/+/gi;

    return (1, "$topurl/$file");
}

1;

__END__

=pod



( run in 0.936 second using v1.01-cache-2.11-cpan-c21f80fb71c )