NAME
App::Shotgun - mass upload of files via SCP/FTP/...
VERSION
version 0.001
SYNOPSIS
use App::Shotgun;
my $shotgun = App::Shotgun->new(
source => '../relative/path',
files => [
# NEVER NEVER EVER EVER use relative paths here!
# They should be in the source path
'robots.txt',
'dir/dir/dir/file.txt',
'category/index.html',
'index.html',
],
targets => [
{
type => 'FTP',
name => 'Target 1', # optional
path => 'htdocs/', # optional
hostname => 'my.local',
username => 'notfor',
password => 'you321',
},
{
type => 'SFTP',
name => 'Target 2', # optional
path => '/tmp/testenv', # optional
hostname => 'myother.local',
username => 'notfor',
# prepared key authentifications are just working
# probably more options for configuring ssh, like alternative private key
},
],
);
# Order of upload:
# Target 1: robots.txt
# Target 2: robots.txt
# Target 1: dir/dir/dir/file.txt
# Target 2: dir/dir/dir/file.txt
# ...
$shotgun->shot;
print "Success: ".($shotgun->success ? 'YES' : 'NO')."\n";
print "Error: ".$shotgun->error if (!$shotgun->success);
my $other_shotgun = App::Shotgun->new(
source => '/absolute/path',
filelist => 'filelist.txt',
);
DESCRIPTION
This module uploads the filelist textfile given via filelist or the filelist given as array via files to all given targets. It uploads file after file, to target after target, that means, first file will get uploaded to all target, and if they all are successful done, the next file will be uploaded. This module doesn't do any "smart" things like compare filesize/modification time/etc and just uploads the files. Hence the name "shotgun" which is appropriate :)
For first the module is made to try again very often but will not continue on fail and close with an exit code above 0.
Please look at the appropriate App::Shotgun::Target::*
classes for their attributes and how to use them.
METHODS
shot
The main entry point of this module.
Returns nothing.
shot_poe
Use this method if you are embedding this module in a bigger POE-based program. The only difference with "shot" is that this method will not run the POE kernel, leaving it to the caller to do so.
AUTHORS
Torsten Raudssus <torsten@raudssus.de>
Apocalypse <APOCAL@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Raudssus Social Software http://www.raudssus.de/.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.