#!/usr/bin/env perl
use
Getopt::Long
qw(:config posix_default no_ignore_case gnu_compat)
;
my
$pathes
= +{};
my
@progs
=
qw(mysql gsutil bq)
;
for
my
$prog
(
@progs
) {
my
$path
= `which
$prog
2> /dev/null` or pod2usage(2);
chomp
$path
if
$path
;
$pathes
->{
$prog
} =
$path
;
}
defined
RC->{
'default.project_id'
} or pod2usage(2);
defined
RC->{
'client.user'
} or pod2usage(2);
defined
RC->{
'client.password'
} or pod2usage(2);
my
%opt
;
GetOptions(
\
%opt
,
qw(db_host=s src=s dst=s allow_text_type dryrun)
) or pod2usage(2);
my
@required_options
=
qw(db_host src dst)
;
pod2usage(2)
if
grep
{!
exists
$opt
{
$_
}}
@required_options
;
my
$app
= App::BigQuery::Importer::MySQL->new({
dryrun
=>
$opt
{dryrun},
src
=>
$opt
{src},
dst
=>
$opt
{dst},
allow_text_type
=>
$opt
{allow_text_type},
mysqlhost
=>
$opt
{db_host},
mysqluser
=> RC->{
'client.user'
},
mysqlpassword
=> RC->{
'client.password'
},
project_id
=> RC->{
'default.project_id'
},
progs
=>
$pathes
,
});
$app
->run;