File Coverage

bin/ysql
Criterion Covered Total %
statement 25 27 92.5
branch 6 8 75.0
condition 3 3 100.0
subroutine 5 5 100.0
pod n/a
total 39 43 90.7


line stmt bran cond sub pod time code
1             #!/usr/bin/env perl
2             package ysql;
3             our $VERSION = '0.036';
4             # ABSTRACT: Query SQL databases in a Yertl workflow
5              
6 1     1   436 use ETL::Yertl;
  1         2  
  1         10  
7 1     1   260 use Pod::Usage::Return qw( pod2usage );
  1         39356  
  1         57  
8 1     1   517 use Getopt::Long qw( GetOptionsFromArray :config pass_through );
  1         7644  
  1         3  
9 1     1   482 use ETL::Yertl::Command::ysql;
  1         3  
  1         209  
10              
11             $|++; # no buffering
12              
13             sub main {
14 39     39   445331 my ( $class, @argv ) = @_;
15 39         84 my %opt;
16 39         185 GetOptionsFromArray( \@argv, \%opt,
17             'help|h',
18             'version',
19             'dsn=s',
20             );
21 39 50       15030 return pod2usage(0) if $opt{help};
22 39 50       110 if ( $opt{version} ) {
23 0         0 print "ysql version $ysql::VERSION (Perl $^V)\n";
24 0         0 return 0;
25             }
26              
27 39         63 eval {
28 39         320 ETL::Yertl::Command::ysql->main( @argv, \%opt );
29             };
30 39 100       1478 if ( $@ ) {
31             # SQL errors do not need usage information
32             # XXX: We need to have some kind of error return message
33 7 100 100     46 if ( $@ =~ /^SQL error/ || $@ =~ /^Could not connect/ ) {
34 4         170 print STDERR "ERROR: $@";
35 4         26 return 1;
36             }
37 3         20 return pod2usage( "ERROR: $@" );
38             }
39 32         165 return 0;
40             }
41              
42             exit __PACKAGE__->main( @ARGV ) unless caller(0);
43              
44             __END__