Update to current Perl
This commit is contained in:
parent
ebd46d86d4
commit
3cc88f8150
57 changed files with 11638 additions and 665 deletions
115
lib/WGDev/Command/Db.pm
Normal file
115
lib/WGDev/Command/Db.pm
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
package WGDev::Command::Db;
|
||||
# ABSTRACT: Connect to database with the MySQL client
|
||||
use strict;
|
||||
use warnings;
|
||||
use 5.008008;
|
||||
|
||||
use parent qw(WGDev::Command::Base);
|
||||
|
||||
use WGDev::X ();
|
||||
|
||||
sub config_options {
|
||||
return qw(
|
||||
print|p
|
||||
dump|d:s
|
||||
load|l=s
|
||||
clear|c
|
||||
show
|
||||
);
|
||||
}
|
||||
|
||||
sub config_parse_options { return qw(gnu_getopt pass_through) }
|
||||
|
||||
sub process {
|
||||
my $self = shift;
|
||||
my $db = $self->wgd->db;
|
||||
my @command_line = $db->command_line( $self->arguments );
|
||||
if ( ( defined $self->option('print') || 0 )
|
||||
+ ( defined $self->option('dump') || 0 )
|
||||
+ ( defined $self->option('load') || 0 )
|
||||
+ ( defined $self->option('clear') || 0 ) > 1 )
|
||||
{
|
||||
WGDev::X->throw('Multiple database operations specified!');
|
||||
}
|
||||
|
||||
if ( $self->option('print') ) {
|
||||
print join q{ }, map {"$_"} @command_line;
|
||||
return 1;
|
||||
}
|
||||
if ( $self->option('clear') ) {
|
||||
$db->clear;
|
||||
return 1;
|
||||
}
|
||||
if ( defined $self->option('load') ) {
|
||||
if ( $self->option('load') && $self->option('load') ne q{-} ) {
|
||||
$db->clear;
|
||||
$db->load( $self->option('load') );
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if ( defined $self->option('dump') ) {
|
||||
if ( $self->option('dump') && $self->option('dump') ne q{-} ) {
|
||||
$db->dump( $self->option('dump') );
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
my $return = system {'mysqldump'} 'mysqldump', @command_line;
|
||||
return $return ? 0 : 1;
|
||||
}
|
||||
}
|
||||
if ( defined $self->option('show') ) {
|
||||
my $return = system {'mysqlshow'} 'mysqlshow', @command_line;
|
||||
return $return ? 0 : 1;
|
||||
}
|
||||
my $return = system {'mysql'} 'mysql', @command_line;
|
||||
return $return ? 0 : 1;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
wgd db [-p | -d | -l | -c | --show] [mysql options]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Opens the C<mysql> client to your WebGUI database, loads or dumps a database
|
||||
script, or displays database information, or clears a database's contents.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
Any arguments not recognized will be passed through to the C<mysql> or
|
||||
C<mysqldump> commands as applicable.
|
||||
|
||||
=over 8
|
||||
|
||||
=item C<-p> C<--print>
|
||||
|
||||
Prints out the command options that would be passed to C<mysql>
|
||||
|
||||
=item C<-d> C<--dump=>
|
||||
|
||||
Dumps the database as an SQL script. If a file is specified, dumps to that
|
||||
file. Otherwise, dumps to standard out.
|
||||
|
||||
=item C<-l> C<--load=>
|
||||
|
||||
Loads a database script into the database. Database script must be specified.
|
||||
|
||||
=item C<-c> C<--clear>
|
||||
|
||||
Clears the database, removing all tables.
|
||||
|
||||
=item C<--show>
|
||||
|
||||
Shows database information via C<mysqlshow>.
|
||||
|
||||
For example, to display a summary of the number of columns and rows in each table,
|
||||
use C<mysqlshow>'s C<--count> option:
|
||||
|
||||
wgd db --show --count
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue