App-Siesh

 view release on metacpan or  search on metacpan

lib/Net/ManageSieve/Siesh.pm  view on Meta::CPAN

    my ( $self, @args ) = @_;
    if ( $self->debug() ) {
        eval {
            require IO::Socket::SSL;
            IO::Socket::SSL->import('debug3');
            1;
        } or do {
            die "Cannot load module IO::Socket::SSL\n";
          }
    }
    return $self->SUPER::starttls(@args);
}

sub movescript {
    my ( $self, $source, $target ) = @_;
    my $is_active = $self->is_active($source);

    ## We can't delete a active script, so we just deactivate it ...
    $self->deactivate() if $is_active;

    $self->copyscript( $source, $target );

lib/Net/ManageSieve/Siesh.pm  view on Meta::CPAN

    my ( $self, $name, $file ) = @_;
    my $script = $self->getscript($name);
    open( my $fh, '>', $file );
    print {$fh} $script;
    return close $fh;
}

sub listscripts {
    my ( $self, $unactive ) = @_;
    my (@scripts);
    @scripts = @{ $self->SUPER::listscripts() };
    my $active = delete $scripts[-1];
    if ($unactive) {
        @scripts = grep { $_ ne $active } @scripts;
    }
    return @scripts;
}

sub deletescript {
    my ( $sieve, @scripts ) = @_;
    for my $script (@scripts) {
        $sieve->SUPER::deletescript($script);
    }
    return 1;
}

sub view_script {
    my ( $sieve, $script )   = @_;
    my ( $fh,    $filename ) = $sieve->temp_scriptfile($script);
    unless ($fh) { die $sieve->error() . "\n" }
    my $pager = $ENV{'PAGER'} || "less";
    no warnings 'exec';

lib/Net/ManageSieve/Siesh.pm  view on Meta::CPAN

    return $self->setactive("");
}

sub is_active {
    my ( $self, $script ) = @_;
    return $self->get_active() eq $script;
}

sub get_active {
    my ($self) = @_;
    return $self->SUPER::listscripts()->[-1];
}

sub script_exists {
    my ( $self, $scriptname ) = @_;
    my %script = map { $_ => 1 } $self->listscripts;
    return defined( $script{$scriptname} );
}

1;    # End of Net::ManageSieve::Siesh



( run in 1.008 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )