GCloud-CLIWrapper

 view release on metacpan or  search on metacpan

lib/GCloud/CLIWrapper.pm  view on Meta::CPAN

package GCloud::CLIWrapper;
  use Moose;
  use JSON::MaybeXS;
  use IPC::Open3;
  use GCloud::CLIWrapper::Result;

  our $VERSION = '0.01';

  has gcloud => (is => 'ro', isa => 'Str', default => 'gcloud');

  has gcloud_options => (is => 'ro', isa => 'ArrayRef[Str]', lazy => 1, default => sub { [ ] });

  sub command_for {
    my ($self, @params) = @_;
    return ($self->gcloud, @{ $self->gcloud_options }, @params);
  }

  sub run {
    my ($self, @command) = @_;
    return $self->input(undef, @command);
  }

lib/GCloud/CLIWrapper/Result.pm  view on Meta::CPAN

package GCloud::CLIWrapper::Result {
  use Moose;
  has rc => (is => 'ro', isa => 'Int', required => 1);
  has output => (is => 'ro', isa => 'Str');
  has json => (is => 'ro', isa => 'HashRef');
 
  has success => (is => 'ro', isa => 'Bool', lazy => 1, default => sub {
    my $self = shift;
    $self->rc == 0;
  });
}
1;



( run in 0.710 second using v1.01-cache-2.11-cpan-5f2e87ce722 )