APR-Emulate-PSGI
view release on metacpan or search on metacpan
inc/Module/Install/Fetch.pm view on Meta::CPAN
36373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
my
$dir
= Cwd::getcwd();
chdir
$args
{local_dir} or
return
if
exists
$args
{local_dir};
LWP::Simple::mirror(
$args
{url},
$file
);
}
# use Net::FTP to get past firewall
my
$ftp
= Net::FTP->new(
$host
,
Passive
=> 1,
Timeout
=> 600);
$ftp
->login(
"anonymous"
,
'anonymous@example.com'
);
$ftp
->cwd(
$path
);
$ftp
->binary;
$ftp
->get(
$file
) or (
warn
(
"$!\n"
),
return
);
$ftp
->quit;
} }
elsif
(
my
$ftp
=
$self
->can_run(
'ftp'
)) {
eval
{
# no Net::FTP, fallback to ftp.exe
my
$fh
= FileHandle->new;
local
$SIG
{CHLD} =
'IGNORE'
;
unless
(
$fh
->
open
(
"|$ftp -n"
)) {
warn
"Couldn't open ftp: $!\n"
;
chdir
$dir
;
return
;
}
my
@dialog
=
split
(/\n/,
<<"END_FTP");
open $host
user anonymous anonymous\@example.com
cd $path
binary
get $file $file
quit
END_FTP
foreach
(
@dialog
) {
$fh
->
(
"$_\n"
) }
$fh
->
close
;
} }
else
{
warn
"No working 'ftp' program available!\n"
;
chdir
$dir
;
return
;
}
unless
(-f
$file
) {
warn
"Fetching failed: $@\n"
;
chdir
$dir
;
return
;
( run in 0.292 second using v1.01-cache-2.11-cpan-87723dcf8b7 )