[Rt-commit] r5706 - in rt/branches/3.7-EXPERIMENTAL: .
ruz at bestpractical.com
ruz at bestpractical.com
Sun Aug 6 23:02:51 EDT 2006
Author: ruz
Date: Sun Aug 6 23:02:49 2006
New Revision: 5706
Added:
rt/branches/3.7-EXPERIMENTAL/lib/RT/Shredder/Plugin/SQLDump.pm
Modified:
rt/branches/3.7-EXPERIMENTAL/ (props changed)
Log:
r3602 at cubic-pc: cubic | 2006-08-07 07:06:56 +0400
* reimplementation of --sqldump option within dump plugin
Added: rt/branches/3.7-EXPERIMENTAL/lib/RT/Shredder/Plugin/SQLDump.pm
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Shredder/Plugin/SQLDump.pm Sun Aug 6 23:02:49 2006
@@ -0,0 +1,45 @@
+package RT::Shredder::Plugin::SQLDump;
+
+use strict;
+use warnings;
+
+use base qw(RT::Shredder::Plugin::Base::Dump);
+
+sub SupportArgs
+{
+ my $self = shift;
+ return $self->SUPER::SupportArgs, qw(file_name from_storage);
+}
+
+sub TestArgs
+{
+ my $self = shift;
+ my %args = @_;
+ $args{'from_storage'} = 1 unless defined $args{'from_storage'};
+ my $file = $args{'file_name'} = RT::Shredder->GetFileName(
+ FileName => $args{'file_name'},
+ FromStorage => delete $args{'from_storage'},
+ );
+ open $args{'file_handle'}, ">:raw", $file
+ or die "Couldn't open '$file' for write: $!";
+
+ return $self->SUPER::TestArgs( %args );
+}
+
+sub FileName { return $_[0]->{'opt'}{'file_name'} }
+sub FileHandle { return $_[0]->{'opt'}{'file_handle'} }
+
+sub Run
+{
+ my $self = shift;
+ return (0, 'no handle') unless my $fh = $self->{'opt'}{'file_handle'};
+
+ my %args = ( Object => undef, @_ );
+ my $query = $args{'Object'}->_AsInsertQuery;
+ $query .= "\n" unless $query =~ /\n$/;
+
+ return print $fh $query or return (0, "Couldn't write to filehandle");
+ return 1;
+}
+
+1;
More information about the Rt-commit
mailing list