fix spacing, braces, quotes
This commit is contained in:
parent
a9ebcd6e8a
commit
c55814647c
|
@ -55,6 +55,7 @@ a sql file, which can then be easily imported to another zoneminder system.
|
|||
--help - Print usage information.
|
||||
--user=<dbuser> - Alternate dB user with privileges to alter dB.
|
||||
--pass=<dbpass> - Password of alternate dB user with privileges to alter dB.
|
||||
--version - Print version.
|
||||
|
||||
=cut
|
||||
use strict;
|
||||
|
@ -149,8 +150,7 @@ if ($topreset) {
|
|||
###############
|
||||
|
||||
# Execute a pre-built sql select query
|
||||
sub selectQuery
|
||||
{
|
||||
sub selectQuery {
|
||||
my $dbh = shift;
|
||||
my $sql = shift;
|
||||
my $monitorid = shift;
|
||||
|
@ -167,8 +167,7 @@ sub selectQuery
|
|||
}
|
||||
|
||||
# Exectute a pre-built sql query
|
||||
sub runQuery
|
||||
{
|
||||
sub runQuery {
|
||||
my $dbh = shift;
|
||||
my $sql = shift;
|
||||
my $sth = $dbh->prepare_cached( $sql )
|
||||
|
@ -181,14 +180,13 @@ sub runQuery
|
|||
}
|
||||
|
||||
# Build and execute a sql insert query
|
||||
sub insertQuery
|
||||
{
|
||||
sub insertQuery {
|
||||
my $dbh = shift;
|
||||
my $tablename = shift;
|
||||
my @data = @_;
|
||||
|
||||
my $sql = "INSERT INTO $tablename VALUES (NULL,"
|
||||
.(join ", ", ("?") x @data).")"; # Add "?" for each array element
|
||||
.(join ', ', ('?') x @data).')'; # Add "?" for each array element
|
||||
|
||||
my $sth = $dbh->prepare_cached( $sql )
|
||||
or die( "Can't prepare '$sql': ".$dbh->errstr() );
|
||||
|
@ -200,8 +198,7 @@ sub insertQuery
|
|||
}
|
||||
|
||||
# Build and execute a sql delete query
|
||||
sub deleteQuery
|
||||
{
|
||||
sub deleteQuery {
|
||||
my $dbh = shift;
|
||||
my $sqltable = shift;
|
||||
my $sqlname = shift;
|
||||
|
@ -217,8 +214,7 @@ sub deleteQuery
|
|||
}
|
||||
|
||||
# Build and execute a sql select count query
|
||||
sub checkExists
|
||||
{
|
||||
sub checkExists {
|
||||
my $dbh = shift;
|
||||
my $sqltable = shift;
|
||||
my $sqlname = shift;
|
||||
|
@ -241,8 +237,7 @@ sub checkExists
|
|||
}
|
||||
|
||||
# Import camera control & presets into the zoneminder dB
|
||||
sub importsql
|
||||
{
|
||||
sub importsql {
|
||||
my @newcontrols;
|
||||
my @overwritecontrols;
|
||||
my @skippedcontrols;
|
||||
|
@ -258,12 +253,12 @@ sub importsql
|
|||
$sqlfile = $Config{ZM_PATH_DATA}.'/db/zm_create.sql';
|
||||
}
|
||||
|
||||
open(my $SQLFILE,"<",$sqlfile)
|
||||
open(my $SQLFILE,'<',$sqlfile)
|
||||
or die( "Can't Open file: $!\n" );
|
||||
|
||||
# Find and extract ptz control and monitor preset records
|
||||
# Find and extract ptz control and monitor preset records
|
||||
while (<$SQLFILE>) {
|
||||
# Our regex replaces the primary key with NULL
|
||||
# Our regex replaces the primary key with NULL
|
||||
if (s/^(INSERT INTO .*?Controls.*? VALUES \().*?(,')(.*?)(',.*)/$1NULL$2$3$4/i) {
|
||||
$controls{$3} = $_;
|
||||
} elsif (s/^(INSERT INTO .*?MonitorPresets.*? VALUES \().*?(,')(.*?)(',.*)/$1NULL$2$3$4/i) {
|
||||
|
@ -276,115 +271,113 @@ sub importsql
|
|||
die( "Error: No relevant data found in $sqlfile.\n" );
|
||||
}
|
||||
|
||||
# Now that we've got what we were looking for,
|
||||
# compare to what is already in the dB
|
||||
# Now that we've got what we were looking for,
|
||||
# compare to what is already in the dB
|
||||
|
||||
my $dbh = zmDbConnect();
|
||||
foreach (keys %controls) {
|
||||
if (!checkExists($dbh,"Controls",$_)) {
|
||||
# No existing Control was found. Add new control to dB.
|
||||
if (!checkExists($dbh,'Controls',$_)) {
|
||||
# No existing Control was found. Add new control to dB.
|
||||
runQuery($dbh,$controls{$_});
|
||||
push @newcontrols, $_;
|
||||
} elsif ($overwrite) {
|
||||
# An existing Control was found and the overwrite flag is set.
|
||||
# Overwrite the control.
|
||||
deleteQuery($dbh,"Controls",$_);
|
||||
# An existing Control was found and the overwrite flag is set.
|
||||
# Overwrite the control.
|
||||
deleteQuery($dbh,'Controls',$_);
|
||||
runQuery($dbh,$controls{$_});
|
||||
push @overwritecontrols, $_;
|
||||
} else {
|
||||
# An existing Control was found and the overwrite flag was not set.
|
||||
# Do nothing.
|
||||
# An existing Control was found and the overwrite flag was not set.
|
||||
# Do nothing.
|
||||
push @skippedcontrols, $_;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (keys %monitorpresets) {
|
||||
if (!checkExists($dbh,"MonitorPresets",$_)) {
|
||||
# No existing MonitorPreset was found. Add new MonitorPreset to dB.
|
||||
if (!checkExists($dbh,'MonitorPresets',$_)) {
|
||||
# No existing MonitorPreset was found. Add new MonitorPreset to dB.
|
||||
runQuery($dbh,$monitorpresets{$_});
|
||||
push @newpresets, $_;
|
||||
} elsif ($overwrite) {
|
||||
# An existing MonitorPreset was found and the overwrite flag is set.
|
||||
# Overwrite the MonitorPreset.
|
||||
deleteQuery($dbh,"MonitorPresets",$_);
|
||||
# An existing MonitorPreset was found and the overwrite flag is set.
|
||||
# Overwrite the MonitorPreset.
|
||||
deleteQuery($dbh,'MonitorPresets',$_);
|
||||
runQuery($dbh,$monitorpresets{$_});
|
||||
push @overwritepresets, $_;
|
||||
} else {
|
||||
# An existing MonitorPreset was found and the overwrite flag was
|
||||
# not set. Do nothing.
|
||||
# An existing MonitorPreset was found and the overwrite flag was
|
||||
# not set. Do nothing.
|
||||
push @skippedpresets, $_;
|
||||
}
|
||||
}
|
||||
|
||||
if (@newcontrols) {
|
||||
print "Number of ptz camera controls added: "
|
||||
print 'Number of ptz camera controls added: '
|
||||
.scalar(@newcontrols)."\n";
|
||||
}
|
||||
if (@overwritecontrols) {
|
||||
print "Number of existing ptz camera controls overwritten: "
|
||||
print 'Number of existing ptz camera controls overwritten: '
|
||||
.scalar(@overwritecontrols)."\n";
|
||||
}
|
||||
if (@skippedcontrols) {
|
||||
print "Number of existing ptz camera controls skipped: "
|
||||
print 'Number of existing ptz camera controls skipped: '
|
||||
.scalar(@skippedcontrols)."\n";
|
||||
}
|
||||
|
||||
if (@newpresets) {
|
||||
print "Number of monitor presets added: "
|
||||
print 'Number of monitor presets added: '
|
||||
.scalar(@newpresets)."\n";
|
||||
}
|
||||
if (@overwritepresets) {
|
||||
print "Number of existing monitor presets overwritten: "
|
||||
print 'Number of existing monitor presets overwritten: '
|
||||
.scalar(@overwritepresets)."\n";
|
||||
}
|
||||
if (@skippedpresets) {
|
||||
print "Number of existing presets skipped: "
|
||||
print 'Number of existing presets skipped: '
|
||||
.scalar(@skippedpresets)."\n";
|
||||
}
|
||||
}
|
||||
|
||||
# Export camera controls & presets from the zoneminder dB to STDOUT
|
||||
sub exportsql
|
||||
{
|
||||
sub exportsql {
|
||||
|
||||
my ( $host, $port ) = ( $Config{ZM_DB_HOST} =~ /^([^:]+)(?::(.+))?$/ );
|
||||
my $command = "mysqldump -t --skip-opt --compact -h".$host;
|
||||
$command .= " -P".$port if defined($port);
|
||||
if ( $dbUser ) {
|
||||
$command .= " -u".$dbUser;
|
||||
my ( $host, $port ) = ( $Config{ZM_DB_HOST} =~ /^([^:]+)(?::(.+))?$/ );
|
||||
my $command = 'mysqldump -t --skip-opt --compact -h'.$host;
|
||||
$command .= ' -P'.$port if defined($port);
|
||||
if ( $dbUser ) {
|
||||
$command .= ' -u'.$dbUser;
|
||||
if ( $dbPass ) {
|
||||
$command .= " -p".$dbPass;
|
||||
$command .= ' -p'.$dbPass;
|
||||
}
|
||||
}
|
||||
|
||||
if ($ARGV[0]) {
|
||||
if ($ARGV[0]) {
|
||||
$command .= qq( --where="Name = '$ARGV[0]'");
|
||||
}
|
||||
}
|
||||
|
||||
$command .= " zm Controls MonitorPresets";
|
||||
$command .= " zm Controls MonitorPresets";
|
||||
|
||||
my $output = qx($command);
|
||||
my $status = $? >> 8;
|
||||
if ( $status || logDebugging() ) {
|
||||
my $output = qx($command);
|
||||
my $status = $? >> 8;
|
||||
if ( $status || logDebugging() ) {
|
||||
chomp( $output );
|
||||
print( "Output: $output\n" );
|
||||
}
|
||||
if ( $status ) {
|
||||
}
|
||||
if ( $status ) {
|
||||
die( "Command '$command' exited with status: $status\n" );
|
||||
} else {
|
||||
# NULLify the primary keys before printing the output to STDOUT
|
||||
} else {
|
||||
# NULLify the primary keys before printing the output to STDOUT
|
||||
$output =~ s/VALUES \((.*?),'/VALUES \(NULL,'/ig;
|
||||
print $output;
|
||||
}
|
||||
}
|
||||
|
||||
sub toPreset
|
||||
{
|
||||
sub toPreset {
|
||||
my $dbh = zmDbConnect();
|
||||
my $monitorid = $ARGV[0];
|
||||
|
||||
# Grap the following fields from the Monitors table
|
||||
my $sql = "SELECT
|
||||
# Grap the following fields from the Monitors table
|
||||
my $sql = 'SELECT
|
||||
Name,
|
||||
Type,
|
||||
Device,
|
||||
|
@ -406,15 +399,15 @@ sub toPreset
|
|||
ControlAddress,
|
||||
DefaultRate,
|
||||
DefaultScale
|
||||
FROM Monitors WHERE Id = ?";
|
||||
FROM Monitors WHERE Id = ?';
|
||||
my @data = selectQuery($dbh,$sql,$monitorid);
|
||||
|
||||
if (!@data) {
|
||||
die( "Error: Monitor Id $monitorid does not appear to exist in the database.\n" );
|
||||
}
|
||||
|
||||
# Attempt to search for and replace system specific values such as
|
||||
# ip addresses, ports, usernames, etc. with generic placeholders
|
||||
# Attempt to search for and replace system specific values such as
|
||||
# ip addresses, ports, usernames, etc. with generic placeholders
|
||||
if (!$noregex) {
|
||||
foreach (@data) {
|
||||
next if ! $_;
|
||||
|
@ -429,19 +422,21 @@ sub toPreset
|
|||
}
|
||||
|
||||
if (!checkExists($dbh,"MonitorPresets",$data[0])) {
|
||||
# No existing Preset was found. Add new Preset to dB.
|
||||
# No existing Preset was found. Add new Preset to dB.
|
||||
print "Adding new preset: $data[0]\n";
|
||||
insertQuery($dbh,"MonitorPresets",@data);
|
||||
insertQuery($dbh,'MonitorPresets',@data);
|
||||
} elsif ($overwrite) {
|
||||
# An existing Control was found and the overwrite flag is set.
|
||||
# Overwrite the control.
|
||||
# An existing Control was found and the overwrite flag is set.
|
||||
# Overwrite the control.
|
||||
print "Existing preset $data[0] detected.\nOverwriting...\n";
|
||||
deleteQuery($dbh,"MonitorPresets",$data[0]);
|
||||
insertQuery($dbh,"MonitorPresets",@data);
|
||||
deleteQuery($dbh,'MonitorPresets',$data[0]);
|
||||
insertQuery($dbh,'MonitorPresets',@data);
|
||||
} else {
|
||||
# An existing Control was found and the overwrite flag was not set.
|
||||
# Do nothing.
|
||||
# An existing Control was found and the overwrite flag was not set.
|
||||
# Do nothing.
|
||||
print "Existing preset $data[0] detected and overwrite flag not set.\nSkipping...\n";
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
|
Loading…
Reference in New Issue