package Prophet::CLI::Command::Mirror;
{
$Prophet::CLI::Command::Mirror::VERSION = '0.751';
}
use Any::Moose;
use Params::Validate qw/:all/;
extends 'Prophet::CLI::Command';
with 'Prophet::CLI::MirrorCommand';
has source => ( isa => 'Prophet::Replica', is => 'rw');
has target => ( isa => 'Prophet::Replica', is => 'rw');
sub ARG_TRANSLATIONS { shift->SUPER::ARG_TRANSLATIONS(), f => 'force' }
sub usage_msg {
my $self = shift;
my $cmd = $self->cli->get_script_name;
return <<"END_USAGE";
usage: ${cmd}mirror --from <url>
END_USAGE
}
sub run {
my $self = shift;
Prophet::CLI->end_pager();
$self->print_usage if $self->has_arg('h');
$self->validate_args();
my $source = Prophet::Replica->get_handle(
url => $self->arg('from'),
app_handle => $self->app_handle,
);
unless ( $source->replica_exists ) {
print
"The source replica '@{[$source->url]}' doesn't exist or is unreadable.";
exit 1;
}
my $target = $self->get_cache_for_source($source);
$self->sync_cache_from_source( target => $target, source => $source );
print "\nDone.\n";
}
sub validate_args {
my $self = shift;
unless ( $self->has_arg('from') ) {
warn "No --from specified!\n";
$self->print_usage;
}
}
__PACKAGE__->meta->make_immutable;
no Any::Moose;
1;
__END__
=pod
=head1 NAME
Prophet::CLI::Command::Mirror
=head1 VERSION
version 0.751
=head1 AUTHORS
=over 4
=item *
Jesse Vincent <jesse@bestpractical.com>
=item *
Chia-Liang Kao <clkao@bestpractical.com>
=item *
Christine Spang <christine@spang.cc>
=back
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2009 by Best Practical Solutions.
This is free software, licensed under:
The MIT (X11) License
=head1 BUGS AND LIMITATIONS
You can make new bug reports, and view existing ones, through the
web interface at L<https://rt.cpan.org/Public/Dist/Display.html?Name=Prophet>.
=head1 CONTRIBUTORS
=over 4
=item *
Alex Vandiver <alexmv@bestpractical.com>
=item *
Casey West <casey@geeknest.com>
=item *
Cyril Brulebois <kibi@debian.org>
=item *
Florian Ragwitz <rafl@debian.org>
=item *
Ioan Rogers <ioanr@cpan.org>
=item *
Jonas Smedegaard <dr@jones.dk>
=item *
Kevin Falcone <falcone@bestpractical.com>
=item *
Lance Wicks <lw@judocoach.com>
=item *
Nelson Elhage <nelhage@mit.edu>
=item *
Pedro Melo <melo@simplicidade.org>
=item *
Rob Hoelz <rob@hoelz.ro>
=item *
Ruslan Zakirov <ruz@bestpractical.com>
=item *
Shawn M Moore <sartak@bestpractical.com>
=item *
Simon Wistow <simon@thegestalt.org>
=item *
Stephane Alnet <stephane@shimaore.net>
=item *
Unknown user <nobody@localhost>
=item *
Yanick Champoux <yanick@babyl.dyndns.org>
=item *
franck cuny <franck@lumberjaph.net>
=item *
robertkrimen <robertkrimen@gmail.com>
=item *
sunnavy <sunnavy@bestpractical.com>
=back
=cut