use vars qw( %info );
use Tie::IxHash;
+use String::ShellQuote;
tie my %options, 'Tie::IxHash',
'user' => { label=>'Remote username', default=>'root' },
'spam_tag2_level' => { label=>'Spam set tag2 level command', },
'spam_kill_level' => { label=>'Spam set kill level command', },
- 'ignore_all_output' => {
- label => 'Ignore all output and errors from the command',
- type => 'checkbox',
+ 'fail_on_output' => {
+ label => 'Treat any output from the command as an error',
+ type => 'checkbox',
+ },
+ 'ignore_all_errors' => {
+ label => 'Ignore all errors from the command',
+ type => 'checkbox',
},
;
sub export_setstatus {
my($self, $svc_acct, $hashref) = @_;
- $self->_export_command('spam_enable', $svc_acct->email);
+ for (qw( spam_tag2_level spam_kill_level )) {
+ $hashref->{$_} =~ /^\d+(\.\d+)?$/ or return "illegal $_";
+ }
+
+ my @shellargs = (
+ $svc_acct->svcnum,
+ user => $self->option('user') || 'root',
+ host => $self->machine,
+ #stdin_string => $stdin_string,
+ fail_on_output => $self->option('fail_on_output'),
+ ignore_all_errors => $self->option('ignore_all_errors'),
+ #ignored_errors => $self->option('ignored_errors') || '',
+ );
- $self->_export_command('spam_tag2_level', $svc_acct->email, $hashref->{'spam_tag2_level'} );
- $self->_export_command('spam_kill_level', $svc_acct->email, $hashref->{'spam_kill_level'} );
+ $self->shellcommands_queue( @shellargs, 'command' =>
+ $self->option('spam_enable'). ' '.
+ shell_quote($svc_acct->email)
+ )
+ || $self->shellcommands_queue( @shellargs, 'command' =>
+ $self->option('spam_tag2_level'). ' '.
+ shell_quote($svc_acct->email). ' '.
+ $hashref->{'spam_tag2_level'}
+ )
+ || $self->shellcommands_queue( @shellargs, 'command' =>
+ $self->option('spam_kill_level'). ' '.
+ shell_quote($svc_acct->email). ' '.
+ $hashref->{'spam_kill_level'}
+ )
+ ;
}