helm

 view release on metacpan or  search on metacpan

lib/Helm.pm  view on Meta::CPAN

package Helm;
use strict;
use warnings;
use Moose;
use Moose::Util::TypeConstraints qw(enum);
use URI;
use namespace::autoclean;
use Try::Tiny;
use File::Spec::Functions qw(catdir catfile tmpdir devnull);
use File::HomeDir;
use Net::OpenSSH;
use Fcntl qw(:flock);
use File::Basename qw(basename);
use Helm::Log;
use Helm::Server;
use Scalar::Util qw(blessed);
use Parallel::ForkManager;
use DateTime;
use IO::File;

our $VERSION = 0.4;
our $DEBUG = 0;
our $DEBUG_LOG;
our $DEBUG_LOG_PID;

enum LOG_LEVEL => qw(debug info warn error);
enum LOCK_TYPE => qw(none local remote both);

has task                 => (is => 'ro', writer => '_task',           required => 1);
has user                 => (is => 'ro', writer => '_user',           isa      => 'Maybe[Str]');
has config_uri           => (is => 'ro', writer => '_config_uri',     isa      => 'Maybe[Str]');
has config               => (is => 'ro', writer => '_config',         isa      => 'Helm::Conf');
has lock_type            => (is => 'ro', writer => '_lock_type',      isa      => 'LOCK_TYPE');
has sleep                => (is => 'ro', writer => '_sleep',          isa      => 'Maybe[Num]');
has current_server       => (is => 'ro', writer => '_current_server', isa      => 'Helm::Server');
has current_ssh          => (is => 'ro', writer => '_current_ssh',    isa      => 'Net::OpenSSH');
has log                  => (is => 'ro', writer => '_log',            isa      => 'Helm::Log');
has default_port         => (is => 'ro', writer => '_port',           isa      => 'Maybe[Int]');
has timeout              => (is => 'ro', writer => '_timeout',        isa      => 'Maybe[Int]');
has sudo                 => (is => 'rw', isa    => 'Maybe[Str]',      default  => '');
has extra_options        => (is => 'ro', isa    => 'Maybe[HashRef]',  default  => sub { {} });
has extra_args           => (is => 'ro', isa    => 'Maybe[ArrayRef]', default  => sub { [] });
has parallel             => (is => 'ro', isa    => 'Maybe[Bool]',     default  => 0);
has parallel_max         => (is => 'ro', isa    => 'Maybe[Int]',      default  => 100);
has continue_with_errors => (is => 'ro', isa    => 'Maybe[Bool]',     default  => 0);
has all_configured_servers => (
    is      => 'ro',
    writer  => '_all_configured_servers',
    isa     => 'Maybe[Bool]',
    default => 0,
);
has local_lock_handle => (
    is     => 'ro',
    writer => '_local_lock_handle',
    isa    => 'Maybe[FileHandle]',
);
has servers => (
    is      => 'ro',
    writer  => '_servers',
    isa     => 'Maybe[ArrayRef]',
    default => sub { [] },
);
has roles => (
    is      => 'ro',
    writer  => '_roles',
    isa     => 'ArrayRef[Str]',
    default => sub { [] },

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.424 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )