The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
package Prophet::CLI::Command::Export;
use Any::Moose;
extends 'Prophet::CLI::Command';

sub usage_msg {
    my $self = shift;
    my $cmd = $self->cli->get_script_name;

    return <<"END_USAGE";
usage: ${cmd}export --path <path> [--format feed]
END_USAGE
}

sub run {
    my $self = shift;
    my $class;

    $self->print_usage if $self->has_arg('h');

    unless ($self->context->has_arg('path')) {
        warn "No --path argument specified!\n";
        $self->print_usage;
    }

    if ($self->context->has_arg('format') && ($self->context->arg('format') eq 'feed') ){
        $class = 'Prophet::ReplicaFeedExporter';
    }
    else {
        $class = 'Prophet::ReplicaExporter';
    }

    $self->app_handle->require ($class);
    my $exporter = $class->new(
        {   target_path    =>  $self->context->arg('path'),
            source_replica => $self->app_handle->handle,
            app_handle     => $self->app_handle
        }
    );

    $exporter->export();
}

__PACKAGE__->meta->make_immutable;
no Any::Moose;

1;