Mojolicious-Command-deploy-heroku

 view release on metacpan or  search on metacpan

lib/Mojolicious/Command/deploy/heroku.pm  view on Meta::CPAN

  my $opt  = {};

  return $opt
    if GetOptions(
    "appname|n=s" => sub { $opt->{name}    = pop },
    "api-key|a=s" => sub { $opt->{api_key} = pop },
    "create|c"    => sub { $opt->{create}  = pop },
    );
}

sub validate {
  my $self = shift;
  my $opt  = shift;

  my @errors =
    map $_ . ' command not found' =>
    grep !can_run($_) => qw/ git ssh ssh-keygen /;

  # Create or appname
  push @errors => '--create or --appname must be specified'
    if !defined $opt->{create} and !defined $opt->{name};

lib/Mojolicious/Command/deploy/heroku.pm  view on Meta::CPAN

  my $self = shift;

  # App home dir
  $self->ua->server->app($self->app);
  my $home_dir = $self->ua->server->app->home->to_string;

  # Command-line Options
  my $opt = $self->opt_spec(@_);

  # Validate
  my @errors = $self->validate($opt);
  die "\n" . join("\n" => @errors) . "\n" . $self->usage if @errors;

  # Net::Heroku
  my $h = $self->heroku_object($opt->{api_key} || $self->local_api_key);

  # Prepare
  $self->generate_makefile;
  $self->generate_herokufile;

  # SSH key permissions

t/deploy.t  view on Meta::CPAN

    heroku_object
    local_api_key
    opt_spec
    prompt
    prompt_user_pass
    push_repo
    remote_key_match
    run
    save_local_api_key
    ssh_keys
    validate
    verify_app
  /;

done_testing;



( run in 1.686 second using v1.01-cache-2.11-cpan-39bf76dae61 )