The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#!/usr/bin/env perl
use strict;
$|++;
$MYDan::Util::OptConf::THIS = 'util';
$MYDan::Util::ExpSSH::TIMEOUT = 86400;
=head1 SYNOPSIS
$0 -aP /tmp/foo user@host:/tmp/bar
=cut
my $option = MYDan::Util::OptConf->load();
my %o = $option->dump();
$option->assert() unless @ARGV;
my $cmd = join ' ',map{ "'$_'" } @ARGV;
if ( $cmd =~ /\@/ )
{
@o{qw( user host )} = $cmd =~ m{'([^\s]*?)\@([^\s^@]*?):}xms;
}
else
{
( $o{host} ) = $cmd =~ m{'([^\s]*?):}xms;
}
die "nohost.\n" unless $o{host};
MYDan::Util::ExpSSH->new()->conn(
pass => -f "$o{conf}/pass.private" ? "$o{conf}/pass.private" : "$o{conf}/pass",
user => $o{user},
host => $o{host},
rsync => $cmd,
);