package Test::mysqld::DatadirDumper::CLI;
use strict;
use warnings;

use Getopt::Long;
use Test::mysqld::DatadirDumper;

sub run {
    my ($class, @argv) = @_;

    my ($opt,) = $class->parse_options(@argv);
    Test::mysqld::DatadirDumper->new($opt)->dump;
}

sub parse_options {
    my ($class, @argv) = @_;

    my $parser = Getopt::Long::Parser->new(
        config => [qw/posix_default no_ignore_case/],
    );
    local @ARGV = @argv;
    $parser->getoptions(\my %opt, qw/
        ddl=s
        datadir=s
        fixtures=s@
    /);
    for my $opt (qw/ddl datadir/) {
        die "$opt option is required!" unless exists $opt{$opt};
    }

    if (exists $opt{fixtures}) {
        $opt{fixtures} = [
            map { split /,/, $_ } @{ $opt{fixtures} }
        ];
    }
    $opt{ddl_file} = delete $opt{ddl};

    (\%opt, \@ARGV);
}

1;