From b1ffa17ea8f076896855e311e22c532bd967acc6 Mon Sep 17 00:00:00 2001 From: rage311 Date: Wed, 1 Nov 2017 04:30:18 -0600 Subject: [PATCH 01/11] Changed 'Mojo::File->list_files' call to current version 'list' --- Mojolicious-Command-deploy-heroku-0.12.tar.gz | Bin 13188 -> 0 bytes Mojolicious-Command-deploy-heroku-0.13.tar.gz | Bin 0 -> 13199 bytes dist.ini | 4 ++-- lib/Mojolicious/Command/deploy/heroku.pm | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 Mojolicious-Command-deploy-heroku-0.12.tar.gz create mode 100644 Mojolicious-Command-deploy-heroku-0.13.tar.gz diff --git a/Mojolicious-Command-deploy-heroku-0.12.tar.gz b/Mojolicious-Command-deploy-heroku-0.12.tar.gz deleted file mode 100644 index fed1edf165189f3252ce79cc271396acdba68d50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13188 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 diff --git a/Mojolicious-Command-deploy-heroku-0.13.tar.gz b/Mojolicious-Command-deploy-heroku-0.13.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b120b32c7510fdcec5ddddb76372899a5c514597 GIT binary patch literal 13199 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 BYzP1V literal 0 HcmV?d00001 diff --git a/dist.ini b/dist.ini index c1793a4..175558e 100644 --- a/dist.ini +++ b/dist.ini @@ -2,7 +2,7 @@ name = Mojolicious-Command-deploy-heroku auth = Glen Hinkle license = Perl_5 copyright_holder = Glen Hinkle -version = 0.12 +version = 0.13 [@Filter] bundle = @Basic @@ -14,7 +14,7 @@ File::Slurp = 9999.19 IPC::Cmd = 0.78 Mojolicious = 4.82 Mojolicious::Command::deploy = 0.01 -Net::Heroku = 0.08 +Net::Heroku = 0.20 ;IO::All = 0.44 [MetaResources] diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index 3dd86f0..dde27d8 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -115,7 +115,7 @@ sub run { push_repo( fill_repo( $self->create_repo($home_dir, $self->tmpdir), - $self->app->home->list_files + $self->app->home->list ), $res ); From 91eb873fc000ee714f3af7a3998988314b06b55e Mon Sep 17 00:00:00 2001 From: rage311 Date: Wed, 1 Nov 2017 04:36:38 -0600 Subject: [PATCH 02/11] Updated remote_key_match ->keys mapping to use new Heroku API key content field called 'public_key'. Requires Net::Heroku 0.20. --- Mojolicious-Command-deploy-heroku-0.13.tar.gz | Bin 13199 -> 13182 bytes lib/Mojolicious/Command/deploy/heroku.pm | 4 +--- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Mojolicious-Command-deploy-heroku-0.13.tar.gz b/Mojolicious-Command-deploy-heroku-0.13.tar.gz index b120b32c7510fdcec5ddddb76372899a5c514597..8899da54d559a58634ded9f1679a24d1b94f9ce3 100644 GIT binary patch delta 12403 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 diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index dde27d8..05fb723 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -352,11 +352,9 @@ sub create_or_get_app { sub remote_key_match { my $h = pop; - my %remote_keys = map { $_->{contents} => $_->{email} } $h->keys; + my %remote_keys = map { $_->{public_key} => $_->{email} } $h->keys; my @local_keys = map substr(slurp($_), 0, -1) => ssh_keys(); - #my @local_keys = map substr($_->all, 0, -1) => ssh_keys(); - return grep defined $remote_keys{$_} => @local_keys; } From 792284febf853b61e7cd29f1264b8032b6140f0c Mon Sep 17 00:00:00 2001 From: rage311 Date: Wed, 1 Nov 2017 04:55:48 -0600 Subject: [PATCH 03/11] Bump package version --- lib/Mojolicious/Command/deploy/heroku.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index 05fb723..c0be14b 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -14,7 +14,7 @@ use Mojolicious::Command::generate::heroku; use Mojolicious::Command::generate::makefile; use Net::Heroku; -our $VERSION = 0.12; +our $VERSION = 0.13; has tmpdir => sub { $ENV{MOJO_TMPDIR} || File::Spec->tmpdir }; has ua => sub { Mojo::UserAgent->new->ioloop(Mojo::IOLoop->singleton) }; From 29e69ec4c064e9fd301b0f4fbfb8e323b913f877 Mon Sep 17 00:00:00 2001 From: rage311 Date: Tue, 7 Nov 2017 10:43:59 -0700 Subject: [PATCH 04/11] Changed all file operations to use Mojo::File Changed to using .netrc as the Heroku credentials file, like the official heroku-cli app does --- lib/Mojolicious/Command/deploy/heroku.pm | 126 ++++++++++++----------- 1 file changed, 66 insertions(+), 60 deletions(-) diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index c0be14b..be75072 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -1,26 +1,28 @@ package Mojolicious::Command::deploy::heroku; use Mojo::Base 'Mojolicious::Command'; -#use IO::All 'io'; use IO::Prompter; -use File::Path 'make_path'; -use File::Slurp qw/ slurp write_file /; +# use File::Path 'make_path'; +# use File::Slurp qw/ slurp write_file /; use File::Spec; +use Mojo::File; use Getopt::Long qw/ GetOptions :config no_auto_abbrev no_ignore_case /; use IPC::Cmd 'can_run'; +use Net::Netrc; use Mojo::IOLoop; use Mojo::UserAgent; use Mojolicious::Command::generate::heroku; use Mojolicious::Command::generate::makefile; use Net::Heroku; -our $VERSION = 0.13; +our $VERSION = 0.20; -has tmpdir => sub { $ENV{MOJO_TMPDIR} || File::Spec->tmpdir }; -has ua => sub { Mojo::UserAgent->new->ioloop(Mojo::IOLoop->singleton) }; +has tmpdir => sub { $ENV{MOJO_TMPDIR} || File::Spec->tmpdir }; +has ua => sub { Mojo::UserAgent->new->ioloop(Mojo::IOLoop->singleton) }; has description => "Deploy Mojolicious app to Heroku.\n"; has opt => sub { {} }; -has credentials_file => sub {"$ENV{HOME}/.heroku/credentials"}; +#has credentials_file => sub {"$ENV{HOME}/.heroku/credentials"}; +has credentials_file => sub { "$ENV{HOME}/.netrc" }; has makefile => 'Makefile.PL'; has usage => <<"EOF"; @@ -46,9 +48,10 @@ sub opt_spec { 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 }, + "appname|n=s" => sub { $opt->{name} = pop }, + "api-key|a=s" => sub { $opt->{api_key} = pop }, + "create|c" => sub { $opt->{create} = pop }, + "verbose|v" => sub { $opt->{verbose} = pop }, ); } @@ -56,9 +59,11 @@ sub validate { my $self = shift; my $opt = shift; - my @errors = - map $_ . ' command not found' => - grep !can_run($_) => qw/ git ssh ssh-keygen /; + 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' @@ -103,7 +108,7 @@ sub run { config_app( $h, create_or_get_app($h, $opt), - {BUILDPACK_URL => 'http://github.com/tempire/perloku.git'} + { BUILDPACK_URL => 'http://github.com/tempire/perloku.git' } ) ); @@ -152,35 +157,24 @@ sub choose_key { sub generate_key { print "\nGenerating an SSH public key...\n"; - my $file = "id_rsa"; - - # Get/create dir - #my $dir = io->dir("$ENV{HOME}/.ssh")->perms(0700)->mkdir; - my $dir = File::Spec->catfile($ENV{HOME}, '.ssh'); - make_path($dir, {mode => 0700}); - # Generate RSA key - my $path = File::Spec->catfile($dir, $file); - `ssh-keygen -t rsa -N "" -f "$path" 2>&1`; + my $path = Mojo::File->new($ENV{HOME}, '.ssh') + ->make_path({mode => 0700 }) + ->child('id_rsa_test'); + + my $exit = system('ssh-keygen', '-t', 'rsa', '-N', '', '-f', $path); - return "$path.pub"; + return $path . '.pub'; } sub ssh_keys { - - #return grep /\.pub$/ => io->dir("$ENV{HOME}/.ssh/")->all; - opendir(my $dir => File::Spec->catfile($ENV{HOME}, '.ssh')) or return; - return - map File::Spec->catfile($ENV{HOME}, '.ssh', $_) => - grep /\.pub$/ => readdir($dir); + return Mojo::File->new($ENV{HOME}, '.ssh')->list->grep(qr/\.pub$/)->each; } sub create_or_get_key { - - #return io->file(ssh_keys() ? choose_key : generate_key)->slurp; - my $file = ssh_keys() ? choose_key : generate_key; - return $file, slurp $file; + my $file = Mojo::File->new(ssh_keys() ? choose_key : generate_key); + return $file, $file->slurp; } sub generate_makefile { @@ -190,12 +184,12 @@ sub generate_makefile { my $file = $self->app->home->rel_file($self->makefile); if (!file_exists($file)) { - print "$file not found...generating\n"; + print "$file not found. Generating...\n"; return $command->run; } - unless ( `$^X -c $file` =~ /syntax OK/ ) { - die "$file does not compile. Cannot continue.\n"; + unless (qx/$^X -c $file/ =~ /syntax OK/) { + die "$file does not compile. Cannot continue."; } } @@ -205,14 +199,12 @@ sub generate_herokufile { my $command = Mojolicious::Command::generate::heroku->new; if (!file_exists($command->file)) { - print $command->file . " not found...generating\n"; + print $command->file . " not found. Generating...\n"; return $command->run; } } sub file_exists { - - #return io(shift)->exists; return -e shift; } @@ -241,22 +233,30 @@ sub heroku_object { sub save_local_api_key { my ($self, $email, $api_key) = @_; - #my $dir = io->dir("$ENV{HOME}/.heroku")->perms(0700)->mkdir; - my $dir = "$ENV{HOME}/.heroku"; - make_path($dir, {mode => 0700}); + my $path = Mojo::File->new($credentials_file); + my $exists = file_exists $path; + + $path->spurt( + -T $path ? $path->slurp : '', + "machine api.heroku.com\n", + " password $api_key\n", + " login $email\n", + "machine git.heroku.com\n", + " password $api_key\n", + " login $email\n", + ); + + chmod 0600, $path if !$exists; - #return io("$dir/credentials")->print($email, "\n", $api_key, "\n"); - return write_file "$dir/credentials", $email, "\n", $api_key, "\n"; + return $path; } sub local_api_key { my $self = shift; - return if !-T $self->credentials_file; + return if ! -T $self->credentials_file; - #my $api_key = +(io->file($self->credentials_file)->slurp)[-1]; - my $api_key = +(slurp $self->credentials_file)[-1]; - chomp $api_key; + my $api_key = Net::Netrc->lookup('api.heroku.com')->password; return $api_key; } @@ -269,7 +269,7 @@ sub prompt_user_pass { my $email = prompt('Email:', -stdio); chomp $email; - my $password = prompt('Password:', -echo=>'*', -stdio); + my $password = prompt('Password:', -echo => '*', -stdio); chomp $password; return (email => $email, password => $password); @@ -280,8 +280,9 @@ sub create_repo { print "Creating git repo\n"; my $git_dir = - File::Spec->catfile($tmp_dir, 'mojo_deploy_git', int rand 1000); - make_path($git_dir); + Mojo::File::tempdir($tmp_dir, 'mojo_deploy_git_XXXXXX')->make_path; + # File::Spec->catfile($tmp_dir, 'mojo_deploy_git', int rand 1000); + # make_path($git_dir); my $r = { work_tree => $home_dir, @@ -300,9 +301,12 @@ sub fill_repo { my @ignore = git($r, 'ls-files' => '--others' => '-i' => '--exclude-standard'); - my @files = - grep { my $file = $_; $file if !grep $file =~ /$_\W*/ => @ignore } - @$all_files; + my @files = grep { + my $file = $_; + $file if !grep { + $file =~ /$_\W*/ + } @ignore + } @$all_files; # Add files filtered by .gitignore print "Adding file $_\n" for @files; @@ -341,7 +345,7 @@ sub create_or_get_app { my $error = $h->error; # Attempt retrieval - $res = shift @{[grep $_->{name} eq $opt->{name} => $h->apps]} + $res = shift @{[ grep { $_->{name} eq $opt->{name} } $h->apps ]} if $h->error and $h->error eq 'Name is already taken'; print "Upload failed for $opt->{name}: " . $error . "\n" and exit if !$res; @@ -353,9 +357,12 @@ sub remote_key_match { my $h = pop; my %remote_keys = map { $_->{public_key} => $_->{email} } $h->keys; - my @local_keys = map substr(slurp($_), 0, -1) => ssh_keys(); - return grep defined $remote_keys{$_} => @local_keys; + my @local_keys = map { + substr(Mojo::File->new($_)->slurp, 0, -1) + } ssh_keys(); + + return grep { defined $remote_keys{$_} } @local_keys; } sub config_app { @@ -372,7 +379,6 @@ sub verify_app { my ($h, $res) = @_; # This is the way Heroku's official command-line client does it. - for (0 .. 5) { last if $h->app_created(name => $res->{name}); sleep 1; @@ -449,7 +455,7 @@ L =head1 VERSION -0.22 +0.20 =head1 AUTHOR From 49807697d951f08b17a64e06c8a754ce29004fe2 Mon Sep 17 00:00:00 2001 From: rage311 Date: Tue, 7 Nov 2017 13:41:59 -0700 Subject: [PATCH 05/11] Fixed makefile syntax check Changed perloku upstream URL Fixed credentials_file reference Now using Mojo::Util::getopt Using Mojolicious::Command::extract_usage to print usage from SYNOPSIS doc section Fixed tempdir call to actually create a directory with the intended template Updated docs to reflect changes --- Mojolicious-Command-deploy-heroku-0.13.tar.gz | Bin 13182 -> 0 bytes Mojolicious-Command-deploy-heroku-0.20.tar.gz | Bin 0 -> 12976 bytes README.pod | 11 +-- dist.ini | 8 +- lib/Mojolicious/Command/deploy/heroku.pm | 74 +++++++----------- 5 files changed, 38 insertions(+), 55 deletions(-) delete mode 100644 Mojolicious-Command-deploy-heroku-0.13.tar.gz create mode 100644 Mojolicious-Command-deploy-heroku-0.20.tar.gz diff --git a/Mojolicious-Command-deploy-heroku-0.13.tar.gz b/Mojolicious-Command-deploy-heroku-0.13.tar.gz deleted file mode 100644 index 8899da54d559a58634ded9f1679a24d1b94f9ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13182 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 k=L;Wpk)9VB?TvM-_tVd(pHDxZem?#D9}O3 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 literal 0 HcmV?d00001 diff --git a/README.pod b/README.pod index 1c25630..98823f5 100644 --- a/README.pod +++ b/README.pod @@ -4,7 +4,7 @@ Mojolicious::Command::deploy::heroku - Deploy to Heroku -=head1 USAGE +=head1 SYNOPSIS script/my_app deploy heroku [OPTIONS] @@ -19,9 +19,8 @@ Mojolicious::Command::deploy::heroku - Deploy to Heroku These options are available: -n, --appname Specify app for deployment - -a, --api-key Heroku API key (read from ~/.heroku/credentials by default). + -a, --api-key Heroku API key (read from ~/.netrc by default). -c, --create Create a new Heroku app - -v, --verbose Verbose output (heroku response, git output) -h, --help This message =head1 DESCRIPTION @@ -30,7 +29,7 @@ L deploys a Mojolicious app to Heroku. *NOTE* The deploy command itself works on Windows, but the Heroku service does not reliably accept deployments from Windows. Your mileage may vary. -*NOTE* This release works with Mojolicious versions 4.50 and above. For older Mojolicious versions, please use 0.10 or before. +*NOTE* This release works with Mojolicious versions 7.20 and above. For older Mojolicious versions, please use 0.13 or before. =head1 WORKFLOW @@ -65,7 +64,7 @@ L =head1 VERSION -0.22 +0.20 =head1 AUTHOR @@ -77,4 +76,6 @@ MattOates briandfoy +rage311 + =cut diff --git a/dist.ini b/dist.ini index 175558e..04974b7 100644 --- a/dist.ini +++ b/dist.ini @@ -2,20 +2,18 @@ name = Mojolicious-Command-deploy-heroku auth = Glen Hinkle license = Perl_5 copyright_holder = Glen Hinkle -version = 0.13 +version = 0.20 [@Filter] bundle = @Basic ;remove = Readme [Prereqs] -File::Path = 2.08 -File::Slurp = 9999.19 IPC::Cmd = 0.78 -Mojolicious = 4.82 +Mojolicious = 7.20 Mojolicious::Command::deploy = 0.01 Net::Heroku = 0.20 -;IO::All = 0.44 +Net::Netrc = 3.10 [MetaResources] repository.web = https://github.com/tempire/mojolicious-command-deploy-heroku diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index be75072..3afe416 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -2,11 +2,8 @@ package Mojolicious::Command::deploy::heroku; use Mojo::Base 'Mojolicious::Command'; use IO::Prompter; -# use File::Path 'make_path'; -# use File::Slurp qw/ slurp write_file /; use File::Spec; use Mojo::File; -use Getopt::Long qw/ GetOptions :config no_auto_abbrev no_ignore_case /; use IPC::Cmd 'can_run'; use Net::Netrc; use Mojo::IOLoop; @@ -19,40 +16,25 @@ our $VERSION = 0.20; has tmpdir => sub { $ENV{MOJO_TMPDIR} || File::Spec->tmpdir }; has ua => sub { Mojo::UserAgent->new->ioloop(Mojo::IOLoop->singleton) }; -has description => "Deploy Mojolicious app to Heroku.\n"; +has description => "Deploy Mojolicious app to Heroku\n"; has opt => sub { {} }; -#has credentials_file => sub {"$ENV{HOME}/.heroku/credentials"}; has credentials_file => sub { "$ENV{HOME}/.netrc" }; has makefile => 'Makefile.PL'; -has usage => <<"EOF"; +has usage => sub { shift->extract_usage }; -usage: $0 deploy heroku [OPTIONS] - - # Create new app with randomly selected name and deploy - $0 deploy heroku -c - - # Deploy to specified app and deploy (creates app if it does not exist) - $0 deploy heroku -n friggin-ponycorns - -These options are available: - -n, --appname Specify app name for deployment - -a, --api-key Heroku API key (read from ~/.heroku/credentials by default). - -c, --create Create app with randomly selected name - -v, --verbose Verbose output (heroku response, git output) - -h, --help This message -EOF sub opt_spec { my $self = shift; 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 }, - "verbose|v" => sub { $opt->{verbose} = pop }, - ); + Mojo::Util::getopt( + 'appname|n=s' => \$opt->{name}, + 'api-key|a=s' => \$opt->{api_key}, + 'create|c' => \$opt->{create}, + #'verbose|v' => \$opt->{verbose}, + ); + + return $opt; } sub validate { @@ -67,7 +49,7 @@ sub validate { # Create or appname push @errors => '--create or --appname must be specified' - if !defined $opt->{create} and !defined $opt->{name}; + if !defined $opt->{create} && !defined $opt->{name}; return @errors; } @@ -95,7 +77,7 @@ sub run { # SSH key permissions if (!remote_key_match($h)) { - print "\nHeroku does not have any SSH keys stored for you."; + print "\nHeroku does not have any matching SSH keys stored for you."; my ($file, $key) = create_or_get_key(); print "\nUploading SSH public key $file\n"; @@ -108,7 +90,7 @@ sub run { config_app( $h, create_or_get_app($h, $opt), - { BUILDPACK_URL => 'http://github.com/tempire/perloku.git' } + { BUILDPACK_URL => 'http://github.com/judofyr/perloku.git' } ) ); @@ -188,9 +170,8 @@ sub generate_makefile { return $command->run; } - unless (qx/$^X -c $file/ =~ /syntax OK/) { - die "$file does not compile. Cannot continue."; - } + die "$file does not compile. Cannot continue." + unless (qx/$^X -c $file 2>&1/ =~ /syntax OK/); } sub generate_herokufile { @@ -233,7 +214,7 @@ sub heroku_object { sub save_local_api_key { my ($self, $email, $api_key) = @_; - my $path = Mojo::File->new($credentials_file); + my $path = Mojo::File->new($self->credentials_file); my $exists = file_exists $path; $path->spurt( @@ -278,11 +259,10 @@ sub prompt_user_pass { sub create_repo { my ($self, $home_dir, $tmp_dir) = @_; - print "Creating git repo\n"; + print "\nCreating git repo\n"; my $git_dir = - Mojo::File::tempdir($tmp_dir, 'mojo_deploy_git_XXXXXX')->make_path; - # File::Spec->catfile($tmp_dir, 'mojo_deploy_git', int rand 1000); - # make_path($git_dir); + Mojo::File::tempdir($tmp_dir . '/mojo_deploy_git_XXXXXXXX')->make_path; + print "$git_dir\n\n"; my $r = { work_tree => $home_dir, @@ -331,9 +311,12 @@ sub push_repo { sub git { my $r = shift; my $cmd = - "git -c core.autocrlf=false --work-tree=\"$r->{work_tree}\" --git-dir=\"$r->{git_dir}\" " + "git -c core.autocrlf=false " + . "--work-tree=\"$r->{work_tree}\" " + . "--git-dir=\"$r->{git_dir}\" " . join " " => @_; - return `$cmd`; + + return system($cmd); } sub create_or_get_app { @@ -394,7 +377,7 @@ sub verify_app { Mojolicious::Command::deploy::heroku - Deploy to Heroku -=head1 USAGE +=head1 SYNOPSIS script/my_app deploy heroku [OPTIONS] @@ -409,9 +392,8 @@ Mojolicious::Command::deploy::heroku - Deploy to Heroku These options are available: -n, --appname Specify app for deployment - -a, --api-key Heroku API key (read from ~/.heroku/credentials by default). + -a, --api-key Heroku API key (read from ~/.netrc by default). -c, --create Create a new Heroku app - -v, --verbose Verbose output (heroku response, git output) -h, --help This message =head1 DESCRIPTION @@ -420,7 +402,7 @@ L deploys a Mojolicious app to Heroku. *NOTE* The deploy command itself works on Windows, but the Heroku service does not reliably accept deployments from Windows. Your mileage may vary. -*NOTE* This release works with Mojolicious versions 4.50 and above. For older Mojolicious versions, please use 0.10 or before. +*NOTE* This release works with Mojolicious versions 7.20 and above. For older Mojolicious versions, please use 0.13 or before. =head1 WORKFLOW @@ -467,4 +449,6 @@ MattOates briandfoy +rage311 + =cut From 3fbf5204cb6aa7dc87d1e39a143a9472436f3433 Mon Sep 17 00:00:00 2001 From: rage311 Date: Wed, 8 Nov 2017 13:28:08 -0700 Subject: [PATCH 06/11] Added optional app name argument to create Updated Heroku signup URL Changed to generating Procfile style run script in generate command --- Mojolicious-Command-deploy-heroku-0.20.tar.gz | Bin 12976 -> 12971 bytes README.pod | 8 ++++---- lib/Mojolicious/Command/deploy/heroku.pm | 10 +++++----- lib/Mojolicious/Command/generate/heroku.pm | 3 +-- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Mojolicious-Command-deploy-heroku-0.20.tar.gz b/Mojolicious-Command-deploy-heroku-0.20.tar.gz index 6b0015a90d72d39b849da77e03a82cbea7bcceee..ef5591d248258dcbda838dfd731ec094ef9aee0f 100644 GIT binary patch delta 12482 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 M502$;asavj0JNn&Bme*a delta 12480 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 Specify app for deployment - -a, --api-key Heroku API key (read from ~/.netrc by default). - -c, --create Create a new Heroku app + -a, --api-key Heroku API key (read from ~/.netrc by default) + -c, --create [name] Create a new Heroku app with an optional name -h, --help This message =head1 DESCRIPTION @@ -37,7 +37,7 @@ L deploys a Mojolicious app to Heroku. =item 1) B -L +L =item 2) B @@ -45,7 +45,7 @@ L =item 3) B - hello deploy heroku --create + hello deploy heroku --create [optional-name] The deploy command creates a git repository of the B in /tmp, and then pushes it to a remote heroku repository. diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index 3afe416..9be09c5 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -30,7 +30,7 @@ sub opt_spec { Mojo::Util::getopt( 'appname|n=s' => \$opt->{name}, 'api-key|a=s' => \$opt->{api_key}, - 'create|c' => \$opt->{create}, + 'create|c:s' => sub { $opt->{create} = $_[1] ? ($opt->{name} = $_[1]) : 1 }, #'verbose|v' => \$opt->{verbose}, ); @@ -392,8 +392,8 @@ Mojolicious::Command::deploy::heroku - Deploy to Heroku These options are available: -n, --appname Specify app for deployment - -a, --api-key Heroku API key (read from ~/.netrc by default). - -c, --create Create a new Heroku app + -a, --api-key Heroku API key (read from ~/.netrc by default) + -c, --create [name] Create a new Heroku app with an optional name -h, --help This message =head1 DESCRIPTION @@ -410,7 +410,7 @@ L deploys a Mojolicious app to Heroku. =item 1) B -L +L =item 2) B @@ -418,7 +418,7 @@ L =item 3) B - hello deploy heroku --create + hello deploy heroku --create [optional-name] The deploy command creates a git repository of the B in /tmp, and then pushes it to a remote heroku repository. diff --git a/lib/Mojolicious/Command/generate/heroku.pm b/lib/Mojolicious/Command/generate/heroku.pm index 1b459fe..a4a9cf9 100644 --- a/lib/Mojolicious/Command/generate/heroku.pm +++ b/lib/Mojolicious/Command/generate/heroku.pm @@ -23,8 +23,7 @@ sub run { __DATA__ @@ perloku -#!/bin/sh -./<%= +(shift =~ qr|[\./]*(.+)|)[0] %> daemon --listen http://*:$PORT --mode production +web: ./<%= +(shift =~ qr|[\./]*(.+)|)[0] %> daemon --listen http://*:$PORT --mode production __END__ =head1 NAME From 3cb2999068f674ec3900b9fd63d29af59dd88a7d Mon Sep 17 00:00:00 2001 From: rage311 Date: Wed, 31 Jan 2018 11:44:47 -0700 Subject: [PATCH 07/11] Changed upstream buildpack URL to rage311 repo --- Mojolicious-Command-deploy-heroku-0.20.tar.gz | Bin 12971 -> 12970 bytes lib/Mojolicious/Command/deploy/heroku.pm | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Mojolicious-Command-deploy-heroku-0.20.tar.gz b/Mojolicious-Command-deploy-heroku-0.20.tar.gz index ef5591d248258dcbda838dfd731ec094ef9aee0f..57c5bd0f34b3756d53116fa443040770f9fa35cf 100644 GIT binary patch delta 12721 zcmV;iF;32_WvXR=ABzY8000000RQcMdw<(DvS|P2r$D{#N@^upvh!%=#v8>}5}maz zAIWYux5?3=CCK82B2|*Iqnl+C-L9oFc<~# zBCQ?9vzZ@_YhyhR<7I8Cllax5)~N3`zWS$r8jZ&NyLa(_|IPb%8~Oj0{b_vF+}mw5 z_wL=U#Z3)dHqj5fnfa(Kc06!4N~PNqiJxh)hLcKKZsJ5O|=>a zX_f?+i!6wLBlX_-RK07Rq}UWE*77{1j_AG0V)c}o$Y5za$!`2aEBJjB&zDJXHO*9c zRKbP6uP&GBNvI?BG>Be>x-OmIpGl&%?Yys+@j{LKNF~}L3LrBDnC--gn#JQ_vcw0A zXsiGwRma;%>fMGs5cw9(y+w4wZ`|g-96Q4wCEqtYyvga*R%K<#0X$%kl1Ln zRPjWe^!}?iY@eMe9bKzyKMDNHP&>UI2d|+|5P{}OVN~cAXwViBNjBm_lM^8YbgJqm z$fl~kGh*BkyT%VLc8!hL!8lgbl}r<9GFgOwq4MYR6vaOU*q}&3iGa>SO0`-SSrFC^ zMxmdk!z>;mHePP{lu?63ai(tKt1cIaSQqESj%}#-R`;Fb~mEfjeyjkfH$%otTHUPKPEOIV#|vvYWGNw zbej6f(jhm>I?ZAeX$hyhE>6umn{YZy0+bT%kEYCAKG6|YJkj%5_$!MuKZMMun1~#6}nS|y)l9r zrm}8}l-LpE;Um9+9tOFx|39=nF29T$4h2Z~0&v=pXHVn@Q$=w2y zcQ-EuvSqr;lq#5jNCxVaUXpN4U>U{^jcRJ(U&EwK8=%fVcIqtDJ1!i50>%PN6qK31 z_Csgn!Qd%&O$$)F6BrJf&tlLK_?Bn|kHUBa+<;H2R*CS-1?WwGoZ`FpfC6n=fHRkW zxx>ngrg02R;lNvkwF>B?aWWD-*6An-h%r}~h1eb?GFgo9H7{cG{fpR*0;D$J7-~P& z|5oPF|Mx$~-NVl5pz|5+zdL*Pz~)=A|MnVtU+lk6X8-+B9kO%k2)n=S`2KF5=U1rx zlhX_Jg!Eph&K8%jR_Zty=?E1mY)bflB%QKXhs__uTv2Ha46PpHrb1iazS5xkV52Y& zaI>mlzGXi{k|eT^SAY(rPeVV;+hR-ak}=w9gK?5(IU-x0SF6?3`8%<#s-N;{cB1cMAf1{2uR9*1$9RMn#x93g0W(pIXm z+iW&!%{|=SE(UEFtpn@1j3Xj2m_)N6%h)DFd7@p_kqKyf2?NjYC3q_yvoQ1&`dVMC zN}KfveRQ(oG6atnjUR^bjULy3H&fC4oF&?yp}QpOWWf7iWNG&GVB{H0EN2jKi{^fW zK2(-a=;oEy;0UBZXb%_~`E;fe_RX>>njN-BU8zS)3Lzza3b-Th7umuy5{BFrW$5M+ zkw8v??is8O2@G=GIG*8~bc#qJ{fG*h-gySwS`C`a{8zxE3us0f#o=^+;$E~3fm|s5 zJdHXL!@EuP=kqXNgV%`tCYC9s774-*nuB<&nDl^XAuz$oEL#Ab64b1qmojX*NO?8u z-g8lziGvHoD@r{K$CKf<%3w@}Rmf;*7FEFJ?qT5M-!=yz1NauutDWSBp zAv81th5Qc<^BQK?|_*IOYouHs__=Q{5K|xcW!YCj@DQ+&L zc65S)Tx>DN$jD_7f|adP!(u{F&(TWxI=PgjtxU*ocW@%bV|bxo`?Glnjikj!a6Zfd zd}ZHobrpS66cq1&3VlbKGfAnMXaGecfmz0^#KEXh0KiaRp(N*YAj*1%6@j^*o4&46 zV70X*S*luQa~KTXdJgXaoHj6p#Us-^=nVf8Bz6r@D)lCIkPyHPEMBJPX-k!x700kD zk{4r8<=qMp3M5zf!PyFKrUB3nNs-daP+x(l(iW4_)+c+DMhHg{n(`*(12(|Yc&2d_ z9g3Sf_miFoEC-A>sU#jRMw8J97=Kx0v|ot!m?FOblBuVik zE@uviJ;^NKyhT&F^nnvSVF3dTY$Q;|#xHQ*APj^{U1k2XTLUg`6E%+$T4vh1s*Z=j zmLsBqO2%agv}`&c(4OcHVt;ghJjRF`&q>w5Ar`9ju^7WrDqFQj zTeY7Sc5y^Eh-j8G@B|k#id9_)Wb4^|8_=BxqXoFfA&u?<-y|^@DX@XT6Y;-Lv`9w@ zlFDi2u!nFDf`LhlLO%c-6_GZYXP?bj5NCgs*-eDIiNd0FXR|LzZ-2E8+0?_%{$+}x zQQF{eLG4H!A4Mw&{5|G*M=upA2@6d#dpECoei)mewbR+`cesXNCW8q?JE%?7%%{r~ z?L38Zjwc=&2*y0*fr%G(b6$`ggZ45;EZNKghL3YL^>E!;ovrf|iBW-9H;L;RcmV)> zKJ}VF-uPN?;v63~FMl!3L*MpgsRG{e~LPq zgb=I=ghL!kR^^z-AqZ?Kf_H|@C(F*QXweykOBV%j0K%L@P~`129O3{eh25(;3K+5H z-Uzg*_J2ObhJ~F_2ZkK=2JTG8 zGzjv-$EjLX)~`o;o(Ui!0JALxuF-8k;mHjJ#}Yvk7`A`KZrnODRkadlku7mlF;<0T z1f$2JIGLgQ19FLRZpj3)OPYYNfbhagOrQ{?WDz-5DX%UvJ7riXr3A2{QDpLC#O)3+ zbVbafl9>~r(SMv$WQ^VKMY;g8f!9>!)DCpU2}?!}+A(`a5jdbD-e-eo6fVXj%I{Z; zc8AT^V55OnMw>9ixQ%SJcDY0lmG4QGi8@qr_lbOKTGc}Qj}(#6-Lj34BR70lbD*Iu zn<0UNZT|-8aUFo$wpmjWoRyuO*MD63DD9|<+EMTWyMLN6GYnf~HL=+@ac#gW28=IZ z3*+Aab|*-9{|YRoE8pz#e#ARP5SjFMCYI8Q(x)W?Th{|p2G>5aR|R)TUtP!HVy4C6 z%Hjk=pUgwK70DYis87u%@FmWcBC(EfmP>aE6wspijmb*n-FvtBu!^r^&HzFdakFdi zfL8k}@PCFtQsT?Mqj7Db0s6HbfiVqsITCZWK?ivjLaLgC(k^c!@7P7qtB{>-!)D@- zIJiYoYr7KoEYu`v3H#S1hBF^i|GI`s#TF?zZe>+`InpARPI=Wv+m#vnmI>_xL8^AY zS;x{>Hwi`{g+r_A+7E*>KrD59m*X% zz=)A$hyu}YNYB{k=_+3E90pmSF&5#EV|Jz3KD4CJ9O^sXG}j>; zs4SrvfuLB1pNzqox=j2eFm6K5Go&@S{C@$Lo|8;*Brx!8K4*^#MZiW#t0vlI22fKF z1mIz|F-bp8g2==J*mOms&>a}?SRI+v@||2Q<7|2VVw)azblN33D^s*S&DK}&LPg+# zs`~XDUC3~m>ro?ix4YL~JHqV}Fasd8x!eS7>U}I$p1YgCfY)&_=3SWrF<2Rc(tk<; zZPEgunlfF8$5G5(7XUdk$Rh$zK@6`^Um8OfOmGev84>f?8=_S#09WS41l$YK8@JNP zWHu6ksJN*-oY?2B-|SEmSu z%D{ma<@+wPqJXG`;S2*;s>Rsx3Zuw^qRue5(#jPAdHjY$^31kH7Igxw1~1@eQo5NW z54??YRRuW(cYy16K>IHei5NJMeVJGuMJS$IT+$buvOLPzsNq_IxDeQP# zB8!kP(H5%u#GQ`g$CxdVJay{HK)1MfOgmgPoH+a+Gfl{=E(~IL?~)v#AoR(xP3J)p z7;@o8lj2(0>^SB>5ksK!gv?`5kD&Bne~3K^ZP5@mVoL!F;KYPDikQiy<$*2Hz(HFX zml0Th5pa2&X%Q`EmpaMg(SNe2UdlN$;+A4tL;qs9-id*7{e#-VU{E3Rzf~>f(5y?5 z8={U~Q{*2{!htlnZ^=bLRt`24hPtJiVFNd;O+9xNmRe z%bK2p46^U{b;O90f5@RoQLv2?@F!6Hpe9@kO@Z?qi$7Dy^+`UqV1G_Iv3H~dvl(UH z(Sp`C*hdk4Pcn13edie%v2kqff?2>VrFlQySBASySobLd9M3dLSn5$e##%b5O|Jk( zy#*Q)Bd+15eFnr1_-V1Y+b60!FiDOh^|;^ZsNQ3B__W=B(y3y*eg|8)pfKg(0Dx9K`n&VD^UmqHI_vaL zy65Kr?a_19K05>8?MKHQb=-c2k@mkGcFxY#v!|U?uZQ5Db$I&1gOyPbgtc>L5oDo$#vJpi<~)U)pS)856o zMII;DK7FqK+C4q0s!o>xb^dnN?+jr69>DIN0LC47**!fxzBr=1&Lez>3_Zp*rfQ z^SE<(-u(%d7h1wFgNu`n(0g!B1Uf!er=3H$dtJDQv zZ0c1aXgTPL04$f69_`b+ms#5mU?f<&gMPZa|{m#uUqJ>;C=xQz?|iJ z5H5&>htE+xpMqT^dt!l4CAoj#5EZv%qhuqiM7bqdX;D_56?U>RMP;R z_J)#u0pvUw zd2W0R^f!I+y>lbVX8B?_K7y7GmD8pE1hGbY()OO2#uVL0B2W@iq6Xy4<8(08rNLk@ z83QmTuJzJm*MAf)QZeX?xxxJ4NIH!d;eVJ-KqoGzy)A1xY=K=BnGpUwrldk43dOFU zMEbF^0*wXXupg10)ZfJR90HWUti$SC27Q?XdZNHQ@CjiwDuD;k_^TfftkrVLVt}RCI7NwSl2ht*bPuh%715y zf%HtsYV0wPAy~aC$8o{YF?&4fBD2r$+r%9n_u&8~y7>Uw<{c#Hxw>7$G(KRr9_T!p z`3|~rlnhN|^1o7W+$d7;DR za^BTyUMlAGus#Y4CkmlpJPXMhmw)1pT=9jrw8k2sB#vNCT$%)~0jRnl1QLleBPFnGo4)1yoyv?Fzta&<)^!3a{LC2jE}0{dGIZyKJy_d|6} zfM35>Me$whJpxBVYT4S42EAi2LXMxi2J}90g)ju3>(lCgQzX(&sh$hQdVd+Y*=k7p z>k!A`<8uX#KoD2~m}zd2AKR8qN<+yqgOg1_4p&w1bpa( zr0jeNG8jh(Rn-KeEeS$Csi4e@D%R_#0i}MS`A?Xw2Tu00k}Z4Xggr%-zV`CNA*<&` zRI}drWQRXC4bBp{`hUjr@&gIylxWLjuB7zMp$C~FMjy1K6m5)#)qw=r)ESW4ztWx& zE{wpBs~jUYH4e^}~lhU!XaDJ6F8`37Y=#Sn)oz7{?dt9fQIMwX!ADX)uX z%!6yUcp)``F=>{EX-&ppQ_@`8qK2pKwiYL~5KqL87Ac0W@qZ+~pH69~n}dZ}ges-y zei}!VX)9I-dfriw%7FQ4C`TB^y`Z89hkJ49Q|<-mojrpM5_9q$_e{R4Loj2f!O8( zorG@-Z;14xQIp9S41cD18w^(&ZVMUuW*U=L4%q6pc44lsr1Dn+`4icX9R@P+L5CAa zP{gM0zLfAG1-e4OzeHtqKwV?*oGu)+VW0dhs z)^4qn9vT*ZE@L{ zx@JNER}G;$^L&b@q*I(IFg`nublC~?l#-8CvcjaC0`+ z!bEsfvo$e!LvL{3 z&;*(LQoKq0eG86a-2kH|K!W@tCFFeZVu}Rea(`>Bn1>3y`cFuw8_KP80xMjZMM2Y;!O6+L%?nW|t6aMb&ys(wm{B&pqUi8=)M;Hw8BxfGd#5yi zn4yDYrS{NF!z&z&F9?I07RUKk!&h2aI zEY#W>6(;w)NzC2)dZ~D_(J1CJ#AsO@NW{rAnsWVI4p#Q?>2^~V!RG|#Xke_0BVps& zBEI$FbysrvE{wc#ZMjMGbKGc)m(p{8@ot!MWy$O;RbF{o$u$Os)g=|;dt@`;*2P8} z3MAU7KJZw&KL)h3Al1crnaI<4!PWU3i@(7&zsChld=JqEZ9!zE0J)Fch=EnC2T24R zKj(;RZmr#_8fC*N7LQHP8q3XSYjAoiz1b7NgN1w`AH2XBxl{S2k!X9caET9pkOEhF zIYGl^;jLY}u@f%Ocj)_db*Q*HCB#xR@ToyaU7B3-nRBLE^olG^IrL`d%+@BZPSMsh z9I!Iz_q-q`ntV&pWoewbMaqtxj>d74YFQb)pURU3x7M`TE!`lNaS@~@YlNp|@OYEN z;hef0&-gr;a$(F#-SYHE`YFC20x%ngFWwm=ZB924E?|K zEKMh9SenQuS!UMie7uudBpp||}UwYlM!&d8XHr`lOfuQey@41&fZfJ8K zhkw`IrUa+a^iFlwYRL_T8^;1T)CT^Oj5gx4S8w7}Pju$@H5-gD3A|1b+`Twi)^GGB zHJoPIJZy zT0RDKeHM?^4*1IBdJ==ee@RClgw6Qw-x{5ti# zmH}^3ud2hd_9*}a9g3Wu|+x-lp-Gh ztI?e5tdqgl0`oS1(%B9Q3H7R7H|uxm(`<&>2^kB}goh;$Rb1->Hd2=|X5&I~z$R6K zNA4b^O1LepK3%(Y8#_0e*v#3S=qY#3wbpWPyIn(*MShbdU{ zekftT;Uy-=Bb@K^_Q`RpbsjjU1Df^w(B+Fx{-pZ9ecF8`+!>sI&hLNh-Cw)^fA3!7 zi~j!@%+i~q+=q3D z`JDfxO0i*_46k%{%TwExpQ2^Ux0AqrGt_^tVVgq&% zT&1wJltDdhwI2=6`|ZQ?E%o3)ZLJ2WwyM}oj&e9x#)L>a*}sI z4d0L|+}eNvsV0;n|6c zwuv4wFbp7Vaixq4m|tQXX~WC4Q4Od@)3kO%O6Fw_DvvDjI}9#uS)%>a=?}WS)0J*p zxW~BDI0x^Lmt!m2`L>=B0I!1lf=uxkI1$4}lI<}pam(c2G4+p`_&cV3%cOq^-$jJA z`l_t(Yfi71BjlGI`t13i`v8Ma5w%5eq4U))m?%Vx$wtaNbJw7Tn z-q6Z2)LS6vi&Y};dvC!YxOIqiX?ly{RG$2YP5tgJ%o|8n0A60#0F^JM$iMU_kB5A| z_}}jC{nh>d&Yk;T{J(!M|IdGL%Ex$st9`@=bX>p^I54Hk7x&}y#()0J;(xn$8(?@oC9>!)uHr+!$>&+HDZ)*~N& zEp6&m+GjVf+XF9=qFU(R;giQ;)3sXo{V5j`KIOk{8CMB*h9PbY{5*d*xZQr;-fC@MFn=K;2)80wv?G6@M zpf@F*46$9nB_~i-5~8HYxSPgLr@;hBp$R*s*r-1|NUEt(rDL?Ui2s>aVns zIIU^MA?sg9EokL13b*B#=&NlHe{Q~1e^F(3B=fwYTB@l8;-5-*Ff&f|uh%7}ju}~= zQ@aXHFwxl}iD)$P{cvy-F8&ZY$uoZVP$vm~@a_SuY*TUntd5#4zPpvkx&1yAi zXfI+nw|f#Y3XfEOO?NQs@hbWM{O7e-M1PltGOi^f%;gpe68>$FEj$%~H&39ej!kL@ z3m@cFC)emS1G;5-48K+k<+0Ncb;N^PI@J!a38<2Ii1B|oG^?3nvK!IGP(8jn(pgOl z&d5pm;jkiIf66lmg>{x5hGU2~3DI$&)fQ+BSp2`oK~$#SVMU~C1)j@mGlx`8?prd_ zz>dZ>)6a)3DO{R`y1Zni6Q|b-vf7!A0SO(9_6oB z^ETz}X{CQ6+|FP601`+=vAu1T?*zk7C}9^m-z8rhr*AvR!SZFisBi5PB%n!on-9}& zKk*X)@odQRV#{>i4!U}FP4KY;b$e}DwqLC}| z6jNECR9EtPWx3YQyxEZC18P-?F)OCY8$}^5Jkx(Myyzd3fJ+shQ@4hnzu0Rwcjo-n zdaO<>ska28V%46|;ZW|Sz{?ZDP)-pAk=ml>mN%_TA=j#Uy>8xbsq$f#gtbHd$WS!W zVTEW%lwlfsPCBn#%t2Zz@Gws9vTUWiYTmM8V2QDc8gO}#a!OI!;9~HEMImvj5k+0p zQh9%ShWGH`aixcR-C2t4^Kj_W=tX2&nVBI2mT|QMw0idO|36v)_~&=u71(@&K)xAQ z)HfWNh4$a!ZEM@o<>&3-rDZ5P>Wc_$60@^x%jYbya{R}^`BC@u0DFvJ=JWietBuR{ zsSpfQxC7-MYUh7mjKAC7+4PnZ0Beu)Ng{v#d^6l%oLSh0HPw7cZ(BLdH__UzOrHNH zy2%u5Uk;Z)qZ7@mhizFk+|bQV^qEMyJB;s{p@U+qVE!VJdy^L~=YzY+ZW`V$0bhER z$)|>jiUOn{=X7bPRe#V{oPx$hoBMQhBscfTN-gIGU{#gsfKiEQSvx?@JH%e)H+X-s z8Kq+GHyY}#X#g5A9G6SMc$lO!#sAW8 z6ZkJ7TC|4h=yi$HV0Wo!MYjZ(I9; zP3X0;^3?=JbeO1BSX9#1W@55aObCBQ8ZMIgIwM#+{8sY?9~zVH!3R505(RXoM5j~M zRav4#@*0f!V*v0P(dOzDcJTJMy0!8E*50fum9w*9UaqcS!kF6T1F+kyHX<{IA=w>T zt_Z8EL;Nfke~l!F7Fu=%lM4Ff_0IPH{7uzHGS%IKKR0(s@ubTr^IxmpUw3~t2w`qu z{9e>AR^e8jp7+ntRHo|;@5)k5n^{V`f`ylFTYQ<$wz25)J&O!PJ4LK;~>JaUJ(QH&BM4>3Iv4TN}V* z4C)d91r`OimG_En`@4ygoM+sZVSEL~Ax}4dZh(TJ`8xq+H8+~V9;kmB_Zkh^p~yiM zx~y$hcD*(()w&Lmz6g>iw|O<}B3j{af^z6s!EEQ{Qjwmx;h8BH@Dv~`25Bw?MeE}X zZy3=^)6K_p4S@Jc4w9sAY!9W%1H6oKF((_9t}*m8dz!L{%);sTeCXcAQhF;{oe7h0YCfbz+nFA|r`5*^* z7ssT`oryJhb$ko(D)6^WWH{};=GchaLvh{dZ7sF;5}Y56pc-> zT8y3ZarA$K!gGwBm#x`>5iByi-k^=d(8~h2^44w*Xxx$SVl2HCv|y%5fE7`mGEp&F z81?YY&my=W9~L$JOA*z#9C@41Q}yz#2~OLw=n|LwFX&u4#fi~JCh81K#9%LHw)0GCc7iiMWcU%{x+fRl}M*$$SIxlpBvTnP2SLE z378BVSm3}dt`9z=jn2>lyI2j#HjWF0gBuGx&|F@#G=~+j1*-~dsalis3vMVRpO>tS zWgrLRH`_zR#u+_lUK`mga&3YaXl?V`b-i*Zr>6N51ZQOsjwlUxb?l1s0?DTdc#&)d z!-RiqdC;8W9dK3kjlt>GCCy{FYcndyp}8}fuFCb7=J+_?r!)yhL4E~0ryWKieUguy zX|R_~G_j%Tb#>QxOCjDYCkzh=4CSiejdKwfC=E5NTXWy>TuW$rtT{Gjj?mP5fM4Kj zDy+-(ybno)tD0J^LAFo^&rf@2gD!osg|mOFJ2R%A+#@0&e(s&omt9`6(`FM{_)QjU zO+mW^29IaqQl<2f0sM%m`D6z}<4M0`7?b(>jicDq82U=eo+|l(0V&T$iBHws-MeG{ zt=H=Y6(J#lC?h^}>mYxZufmAsqf27%eM1x8Q+Ttijly^_uHle!QF&@UvBzI}^UZ%1 zpDp$pqpFh`qz{`M@D@HW-@Tj9vp<^J}xci#Dy?g*0wGf^wPy^id7y7%u{ z0GxP}^0jHGN@S+=X}XaUd`ol~_;~Xie|pqe6uDtjAn{dviJE~$v@x4Zy+T#`N1Q(<5je2vBZfwPiCGdaRG$H)6 zUjMI;k9*JH0bMo^{Q7{dZf;i8qaTF;117)$E{*YH*>QDT*#pya7kk=Z{L0eMS9;JB zv%y9cLNAgh;Fd5pQ1%cC3n}%Xm$ym#&xQd>24C{MWh<-AO_5uS1xy7XSlym0=}t$r zj|V-MoWJGHi-YRB0Z8)EHiK49$_n zhgnSF#FCW9y5*$>o206^~z5yS*5>QYP*q}G}B_Os#{Kq!L&2p zm=TkWHF|3SG{hh8C)9rvCr@od(manLJEkVW%6%{@Qy|hY7*{1zG}4gzkdpW{=&TlK zRc0{kpv%Z$B7wz;Eo_2Z3=Q&%xsj>1b#bdWrEHW|DrDD9kH-BwcPhp?9uDz)tiz$_ zJ$$HS6z@h~wp4xR$8R2}@5&s{dhieROY-Z_FX}rlzb)6ltNedj`ML2@eFH9n4@Ox8 zh9cHJfPo=~%(t!WvtIuko>PT~T>J~G?7@(o(<2!11Kjde{shN-6XzJVpik^j*NyJ_ zN1c6=z?Q^kKQ8;OOh?LymmjwKPkyTGf1E3}3i^P;e#Z8_W%{|-(LR^Y3J*SNhzNee z&&pw$94JJ-V4QzlE&*fvACQ@j->Q@w*jK*FiXMNYQ-jhj*qn|+I4~40D2beI&SQt3 zHeJ4{UAgo)j=!b=`hY&O=z=!4S_^+v`Ic()@gC#BAP>6;lj5wPm$TG8B{vs+&u)fhh rbLMeSRV(v)f?u@f=bId<`WFY}%g>jeFF#*?Zu$9tPHcD60J;DG+-=Dp delta 12722 zcmV;jF-^{@WvgX>ABzY8000000RQcMYkS+qv2Z`*S8P%fTuO*RfB`_sJdXR@&)jygASqwc)NbBbPa8|X?(FRB%{@ zW=U`{&w@CAQtzEl)w|Y7icN81EzeWxklw2-R!^vj43@@|?8Z;Dg5O8+Y>@<)SD7l0 zD!B0X)Wt$Q4t1oS1ktNd*QFEuZ<1(jJMXDQJXa$>Qi-;R0?14OW?ONhrtvtKEbzfR z8tcTv8KwSIt4t?Tm@&`sR41X@RkI|%O#JCIh%Qxs=tq}x{}Ng+(o9bQLaM_F;K7Kn z#HdLSYIOrpE_I|6KhtAG{17l{wfo;A4S@5XB>x9j zFk78|PWj*2-riZ3|J^&yFY^B>eu$-sm&fsFKGjjia*^okfP@*|XK}Jn6A&qU;moVm zl8Lo{T0FB>i>Fr59Ki66db5Em4dT6BYkXJR-cgN4i~i@CO`xXwdKzDY7y&E|5*v*c zDxRq0-hcIm?bB1Gqic2TCxL$vYNywu;5GCKBG6nZj0)WX4ca0i$wpjgaw4RFPF39m z*_EnqjTm>tuJOH#U1KeFFpd>H_md;&5)EnPc3KaW!9wd6X4Nd90 zd`kCf&F|JtsXZP8>8^A*1D*If!&RGw{({lCjOH^n2jzHk1-cmY<8+qc8=Uh9R4#CT zO5lenjdd>{>uznQaSQqESc_Rq-R`>Gw%4NAjeyjkfY-7etTHUPKPEOIV#|vvYWGNw zbej6f!XY=xI?ZAoX$hxY7pLZ(bvT_S0ZNJXM_0^TKG6|YJkhgQ_$!MuKZMY?&@Ir3xk>l7V`q7bIL0Scb7fqnaA{*Dxv52B`DTtvUbCFnEGp(*o4)1crm=(-?FFz9m}0qc9!;H{g@1RU-Uy4tmocr}*wYpg@}z;LK!y z?yxeWt2hRxaNsS&S_bsdI2j2Z>vWU^#F$IWLTrx`naoG{nisM8{zdFY0a6=q47H!? z|0wh5|NEb#?m_2d(D{t^-<_SiyW7k5-%exqi~aY>?7!cuLv}_TVfVKk-`~yi{0g;y zd~&WHlimx}>HGrLN*x6w9ibwHO$ncWq*v_KVe>~YS5#U9L#s!)snFK9r!?q3*eHwx z+^i~?Z`sd~B#G?f6`%v@)6mcIw%F3UV2n1}V4S2`j>v}R)oL|$_D*c8>S;dgBYly~ z!RArT@4x$ALFY9t_rb4S;i?LG$T6=V`S`yUInUXm@*jfKIqCG0ddf*zaTfi#pK_f6=cAL<|2NHlmFvtL8Fo8YoQ5eTbRXvQs5rU@2ZKWF9 z&1R$4+`;Ybe9(r`IM zv{{ePM<**TL-1(P_+c2|=y832Jr&K*X`=lpx=XT72D}eOmS$fMMxMgNas~mnXy!-g zLuCntZeD2(jz9{8_JE<0Pp3Lz-z>XAv%~hNEA?tvR)Z!}{}u4)9Ga0vaX6iSxEF0hAQy^1 zPoqx6@NSd+*(?m$;5A~uj%7-zMS`${<{;iGCOsfp2uyG?%jQ6*1T`z@r3_onQ(n!w z_gqxwJS9zuxDo{f0+?o59MdX4Lv#KH<~P&+DPRg-rHDJW!!y6I$rAg5WIJC593G8-IZ+5EO1G zOm0y2a+EEc1Y9-jmcrCW$WUXAy^%1NIwQ89P{SKw68N*~*{;||IHR!o&>d+CBae7& z1QLN$c*9s20`Kwa8E~(n_{PE=6APfXg+5eD%W#H{7nsr`(e0#vVNxQ0q;o>Slu+8) z5N7bOwim(J11>=|0qwxcSkPEJ2tz`|k(bg}{3=GyPEb%d{KBp3prENwVH6Od6gL-A zJ37HYF1DCqWaJ_U!OGUDVKJeo=V+yTom@)NRwm@PJ2;Wz5xmf^{pl=(M$%#}I3MN! zzOrw)x{AIj3W|4siM}JvnWR)rG=QR!z${}{;$YM$0AQ%EP?B>x5M@2Xioo2@OaaA352WS26 z!*hH^4Uc<=-ACPnHa@^18+AoCqS-9k#-wmJP$4Dlg)lMR95K?#T8zW`8NzrBeSuyM-xZGfqzfu2>~K`r{E zxtuv5_9U}_^9D`j!UsTH#tNQ?@+x=vhA!3zN3 zvn#I&FtfPuXg)8wdvJIZg^|L>g%tM5wCF`lqO) zNeIE3KsdyqWL1uN9D=}>B6w%We6sA^iWZ$wxNuPb2O!Kj1V!FX!yyikQrNwkqks{6 z?w#Q8Ge60S+4<##zy`GG#uKA12oQ0Ns0)m-7ghmnB2av}V}I{cY*^R{bzsO*Z{W^k zOoJdVe4MIPW&L`jXPE#J0x;WB;2PZq6rS8ra4Zotfnobs?8dDkQ&mfG7TFR<6=PLc zMlgCjijyh2KOmPF=ax($yQB#S3kWZ~!~_aKO6HMcmGbH$vr~qJQc3_D8bu~QM%?ZI zLs!HsDw#O}8h_0xMaJ0uo~Lsl8+c7sPVGQvoUml%pdGV!6oCUe;(a!VM&W!+qWpff zXm{9r4b~cHWwZ%HjN8aoYnMv|QTd)^nW#f0cb~|&rd2J(|40!D-7VV)Ida2?H3u5n zvKbOM*!FLb9@hc5ZR<59!CBhbdHu(gkJ65+s2v4Auz#xwGsCb&Ruh|j9oGiDV!-$k zwlMw;V0Vm!_by7bK+??=2-1d&O9XJRQWDScWZuys8kWpM2ydsT3k^wo77&Zk-& zt}IS4^vOJwTammWgZk8L0$<>4DH7`#XSsBzKmje9-;q z#KA3!THBStXQ3uZOW40AF`W9C`qwp7Dz-?$aVx9h%aInjaLTLJ+OEvlw@hdc2vW8C z%_^3@x=AnsDI8i=*M1m`nF%w6X*QI9iD;{Z_J0%J35?m|XxIe@nnZ;QA4j-@Vt$(h zi+~uh8lgG^in?r9A>kFGEtAO+Yoirhsul>yo7HbaxY2FP8$`%oESZj7O9nI`a6@|Y zy~v7(0$hw+wjP7AR_0Q>5HO9H{{v3cN;DUkF=QV(iX+^VbTY!k=&~Qk?IeIh8`?CD z0Y;20LllUHLwd$OPnYq6=P<||jj!|R8axgIrQce{J-wIkdv0W$zXo6AkWrryV5<+-~F40s&}W8Rf15QCL5D1WUK z&?YSaswvZjcpSytbpenwgFGVe1jO(f^`$X%!35`!kr6SEy&+n~0&rzsOu)S$y>Tmz zY!<`@l1v~yNQ@<(<}(=sw<>Y~VJ$cw!Pt3;o??s_{zp}4BvFA61|l)TZk^LHE72r? zWP^jo+$!wW##vbx+Nf~!81&u9Qhym(6IjI;Z@3V?%xITQ>Ok$?1Fox+Z{ zC9((!6K$cYPu%G^evH`?$y2AE40MZ&$F##$!->Pcm}x>@bzu<0dl%#Y1))!lZ8{5* zz>o_!niSW{X2&uAi5LQ%CuAOjdIY5p`$OzWXp4rh5nBpa04FBIQN&CpEe~vo1`gWF zxQxL1^MK3aOp9nfz0gS>kAId$^-|865w{fE8u}N*^-c_w>mSqx27?Nj|BY%fhh|-h z+z@r_nj-&r5)P!neM>G1vU0GYFw`y83~RVyW$L-Bz%*E_qk!j7pt|hbBQ~Z7D%bVM zSl09$WRQKot0P8~{6h{!ih^yFfIori2Q}eJXbPO?Sp1nnu21r@1%GqOiM=Bwn9V5j zjuy1G!9I%Udy<*M?K{uFh>c@&7t8`~Db4%ozBJrz!n#Kp;CQN0!cvd&G1k&aZF&VT z>dn!R7;z0Z?K2>D!0+Q67tBvx##qA(^drGbt_{<1ayj#}IcM;of9|%?Ba^3BZW^2+ z#nU)5fG~g0F^Vy0mw!1cEZc?a4nZBir;y>Kr=GR@{r1V(b8PrM>};Kb_W7Wr&YpDC zX}|Zl-#%8|fk|>4sz?1!NA(`5gD36&<4zUZ^*h+Y1%)XO2LQC{(chhaoOMpl)M=-G z+&w!3Xb+#O_US1AZ$CWhsH65XjI{sbpmTbro;~TDcs&IFtbYsm49?ovp?jj9^}A=? zlg9)Q^D6!B<0oh8N$=>e)2HOi7K~0E)oHtb*6j>Dz~gE6usErW_5je{P|vz&PkQHP z7I~ap`{cR$TleI!sybZ))cMD0zcYaOdjPw83>bIdW%uOZ==_lKIu8NDN$(8k1TzCX z&w4}})7C%-WPbp@ciia%{Z7u>54%TQ7!ngfkGf|kFa)KG+Klma#&T$)oc^@5O1J5)-LUq(( z=TYb2tosy}7h1wFgY)B#(0g!31UfoWC!GVpx7~lP27jIY)9wM%!RvQU+g%_(ro8%n zgwi|Vyhx*tiw9iNd5S!6esYAf?RWlu4)a;V2?(S87`P3I>8!i=tP6wV3N0^wmAb%- zeDR+H8}-z2`#I;?o(p>bnl=$vHzjFfgB5`UT9Gv$-w6F#C0Bi>5AZ*F@H=p00RpQ|UZ z6c0PltbO>ji<*bW@jw;^U7<-&AP60AQ+6<0>b)jAoA+qXFgzH%ZlSY+`vp7zbC&Bt zxF8Z9K1cO@0(Oz?i75h*eRK@Fa2U@pjKhW#*JPM5rzF!Q)*@T$Wumb>JoCU%O#^h| z=YMS6U(KgJIIB`gbb&!_to^}_aFvTeAO(9{nEnOEF5c)zrj1S=J!PVtu;K+c1a zXU4}sf72J=J2#?imM?bWBWUSRIbG^c5Not2ZSSdROwoNL0wp0OYCyg`P6tC>8Vm-L zF#u!YS}#0y{YT+E6@#vr8_W-mq*w7g9DlP3=)~o;w_#0(4X~>s6T+XxlvF50q1g44 zNIzCqps^qv_5;$B`kUCELx2*Pby$7Npf8d@PZXF3J|T=oCGY?mfAxKWwOmfQSO9zi zfc62INBcY~MY(3Vzy52gggIN1txq(4Ozp1ZJKkkdeNgeP-zc`y8%i``F~tt zAUzYZ8hZ?62v)Dkaa?e8%pQ-r$n5ibHgSi?eKd4K_*_9F5Cm2LrkXML*7n@tMkN;!DqjbQTg=c0q~xNiHq>Fp0S3Z2;z}7XtbQalr>A%{1-g|@ zsV&CUD5P%AROqClq(0e8(YX()>=TqCC1$Wv7>lCv^mAT{vyo?Ajkys_JbOYDBd?Sb z#q%Ju5X&jTO!PkTXiBX8JYK}(MWl_0;|_SSu%mEoXg)fL2kz{wfqwyjk;4CRn7jm< z-oC(KWsq>nWIBT#I?2rzsyM`S4dwvgSFEc~(uz&A0Ve;2sH!La=#@@LJ^p|+0UtUc zDLY$$493xZRW-qAOM;M3Dk$@!iuL+wK&fA7{uHzIz{!4AvSqKFu&1cfS6+TNWcl2P zYStT{?C{6B!C3;A-+y>sejwqD5^b5xm6X0Y^dM8j=!2G&qK(n8I*=fnIt5bum)bMJ zg%S91m1E?l#=)8K6D}gem^qixP+bWvrNpj1-=IvV7~)XH*TRQlHBT+Z$PzR><#q9l zd2sC(FQg_gCe89Nt;rayOPWht)bO<3*5afV;)&SNJjL)eo`1ym(<|EPW?*3!p-Snw zpT-eo+KSbIo_Cn1mT3KIYC}fcaOxhJ=3ywM3>cB5G?Z)BNDRpmmy|UVnDzToxQLcx z9ncYZ7MQwB;`!wj+iUuDhV?Km`gO(l4ouoij{dlaOPRSPB31og$qD-l4Loj2f!O8( zorG@-Z;14xQIp9S41c0dOs|R7g0}1?#%liw*bt+@k`%h| z(|`{V!QO3(X7KFKcn&tIR4Q|o09F_TY;VkT3|byYa25NH$oAVr#ff*$M!;_~OF$OG^n9_(VlinF78d-R)?l&T9d>tqKwWbEtGu)+VW0dhs z)^4Sf9vT*Z%s~Kx*T}J0w&c^9P~(DJ37vWQ9pN1zLIXeYLuGiTqNwO?8L`s(YOD zg>5Zki?C2Zi~YDtTWV%Gx*=7yXw_1-9-SCmy}Yu27LP?yF$g(MD@9u4I1h{TPCDxg zwfqX78sKRa7e$op%2GHa@yW;1Qx32#3%3{(KHcszi&HMR@Pn~hDRwze!8gdb9G8Ki z(z^CTq?0Lx$HWmJYb3e|gsS+a{!a)(?&C^9h#8o{W0KA4^Laf&hZY(FTE3etT(NdI zVMaxNFJ!qBu(ecLFPu8xEIg_a?n)j40&8y;B;0 z%+NuyRC{Qq;S~=k~R9 z7HVaU3X}WIBxbk1S}LBbHHx_mFqHrSx2Xyc?!mSu#5dl~-8l2uzZ}vp+U?CsK2QP3+?o@thB-$P*@w1pLzXmt}WQbVEg3JNc;iYOFQm|m33rjxNB zQcThPm|_YJly&fM*}v!h9~9Dh5Cxy{{?F$2_R9Ug_nKes|NJCBB((S6f4eW8X@`bR zq*(oc#oa-oAB@0kse^gHZ%!UVL%fb@xa(QfIFuvY1rYYi;QMrGu;=}M_~221q5qfO z1*q2$0X=x=r@_eEOXzw~c)-``Lfg{>w9?P%ORsx+&}tn_$7`!95cIw8JomE4HEr(U z@b9|Yl;AX)-igjyExEyP?N|VZ+Q5I3(OP_V>P?*LvCjOyW`hwXf!8U5yB8;m`i;Jz zhF4iOOIur8m!R_I7j@Ww6t;xqTT^GjMr#+$frr<4B0PZeE1}h)lM9iOZwwJ;!Yk5_ z7LPz(pT=Xg1-|mQp2VQ=U((SBVKcrvxehNqf^Z+(d3Y0H#$141zFYwK34e||XYKl8 z8h&2=zjFWIZu8C;{r@R`FiYrPfT8Y>vX&|>-`HM~yG&XX`z|?us=EXlIta%@3C*W1 z_2#X|7uU`coj-<-o!1%Of($zK7(6xne*!}_O5S(@dLbAMxm!y$JZl#ZFBXVSew}(= z%Ye72SJlC3`vd@j4n|!yrN{@s zYBZ-h>tyh?z`Turbhd>;LcMC&&HA1CRW`-!gp37f!o!k>Dz5bb8>vefvvDCgV3R7r zBXI}|4=l4H$?ycPazjJr{ zi~j!|LJ!k|3)-Er~Tj9Sz7C^}+_TxCwdmjG% zA)k2J^St<#nl994Tnr!G+M~7~=^O608Q1nlepKEZRw$$K^UW5Q=um28XudnZZo$x> z&G=8M6dT6L@KR^DJhffR>zYei*aEPU*{BWLL;Zw zmnm#5Wl&EW?T3T2e*55TL*3t38_PkejViS{KYP;aa|c{X!#!yqcNl;Cd)Jl+6&Hy6VEBn2uZ45#w#j`?`yD`hczW!j zZK6jE3Z%r%9H=Fsqb#Xyn$o|;N?{fQ2Ant{9AwWc*y6A z|7~yITi*Zg>^8snfB#wjpW%O$kMRJP`-l(dxPT>aU`mxQ?#Jhi|NMu=|F(A<+uMJL z_}|toaqLgF{x(eh+2ViOJD}~C*8g7P&L1QHv-R$T$G?C2=5XqV#r(|f&}u#O;n&i- zUZp*D^SV9o5-F;M{vAGf1U6l(h2NiYA>mX0+m>;aU}qTO#=y^WgWG@Y*X12rQ0xmg$s*(^TMaEq>etH#5fE4;Qm9-4HA$l7gzBeIQ^10A{!3ugRJ4x?~eeu=)?=J3bnOZ8V(c1JSLE2^cMN+ABZgansS=&ECr+Wy=J zdDY1^I?aG?Ssuf$6+?OKG(;V7|CUa*eQW}%BpzZs4$XgRrkLzTbTL$qua0z9(}FW{ zQhqS3NY|%%2BEOd(!+2J@g^ZU4z$_;jRA}QQyfHP`W;q8x>n%1yf$-4<>bC4BMt0m zTr>TA*h1c=yd+(ySfyPdJz}PGn&7cNos)hg$FsNQU7jcsF!DWc=lB8A6y{O>YB_IH z-n^<*gxi1lOCLZ2sVKI$t@52<_z5NKLg%~Wi{tcd2RT^2i0Ac8|^RbtGFY4S!_Jj@xaxVp5o)Cs|iYSQG1~s?5X=MtzR@Liu^L|5>53(ez9q>nnqLB_O zL_4Ak)7W#;dF5gb(o%tkadMYsE9F)5mJI_-jAhh-%Y&3tiqZxbgC{HsiBpXz>Y|p) zn^S+hhX;=cukQe>Y8LzhM`BGbyu3>mPDs~w=#vxoowU;*Ht-+o(Q^9cg^dR$Ro zb7U6Ue~Y)RZAzCPH-nd!q3ozHBCtu!&ax?=v&72r9|mWK-IIOnF@l-T@|UhQF59O< zFi_zRlz*zN|9&z4c5`dpTTTG1JkBSH`160waDR1XVH?&|^Ci7)gwsG%p{vWz}#)H#^a1BI)ihzGsFGim`(Et3>WiUbvhO?k2lwc)J9A=~X75 z8Y(IZkb<1krJ+{+L0fSO8W(Nm)6tRK+$SrwoEv~uRjLC!~a4r`r`!uOTSIv zzl3Pf9wOAiaH+$LOO{lIdhRNH!0cEyVHW|>F8`cty+Ej&TksqYmlJemgJr#K?FTlY zSH{X$6ByB9qE=y1Nn4wV$xbmL7-@evPiCu(VD0c*%@=%VOuG9Y>_kZv(3ujQPFYoD zi4MtYFy@Z|z-vUCt5ev)+u!om$^%$?v#wOm&W3rpx`GK~YMb}LZnN5m%ov7bcWAjH ztga65vt0Z&k|3IE*%eGG=;zm4oB#a}RU64vxA*_j+#TBp&d`WxWzd}=)t~0zVOEqm~DeVdtUcPPdWjdS2qRaOzG7#-7t;KE| zicf-C$+0Y1n4}TyP`RzB$abLb&%QDC)&s}86~l^e0xN$7pwaFGvx&@DGomW=!Q)R$ zWk2Q0o;8UIXU100bOA}Hw~T*-2+L|k5Ugah{HvxXN|j3b>VZz^{>n zx30%+yMQ%%3V{Oa<_LG(FYpQhBgpg{Om;R;#3!$v$yk52FHyaLG6YS}Td3UH03Ksd zmjEcRD6p-(S9IIoO`POB$$(G~20s&Rj}(U2XA98{sp z%4TKPYwc34>JaIRAc=D8SHmu%6%HpThmIA@c2+JG>4_VjnQ{S70kUL}=0Z@kK2Gt5 z5v?@cd`#B>h_B=zN&3e2P^vt@%P8kFvQg<8LqD^pDT`Qc;T?_hS!H8y$?V*)9EeL| zWwl)D;NLB<7iwuX4&r}`V}VjrhvQ|v^S-C@h`MX&Mc&IdYk{q!U0IOXx6+mmvY&Tx zOv>DuSdmx9w*apKe_LnvlVgXr9|mC%jzb!F#32a2f7pt4tA)pg;7!>;Mk9*O5Dht| zJjAa5kRRj}Yx6lvY2eFp7#{%Ra;$CR6oI-AqRh7@typIuQ*r(55P45 z(+uxJEESEuWY5{3!X?@vwZKUvv2fj_KPz-GftSEJFUdD&B}~E(g-CYbFs)Iel0>NZ z*2VpU`FG2MR&ozmvIuzcS6%0WxIF$D*K0V2Kt_JIJ)seqR(V>pPZSy&k~8qknO zGEA8q8(qA-Qm*q2vW-$DXBPN>S-_BWBA@IXkM%fbpVbw%K6!D46TQX-KArQ|f|dlq zAk1+dL=UeXB%Iuz_-NSJa7L|$l2t>=y8mKhGXbQnsJ(r$;Wh+t zH4rS*OytaMgmFJu4-WecUF^j}L+n-*RvrM#7sdpFT%l{r7v@Gz_~~oB$7_nBu`X7N zv2#9-zF&WMjHkSpZkw+N}YNJMvwOrMH9@%rptGBFa-HDn<*V z9=!Qc1Q+DPqNaZ?qWYF2Z?jpdUcNQKX*(8O;*$Rbol7S;G5W|P-bl4j8E92ZqvcG@ z(I_>6%|n8S?uac#u~-Huv03_N0s7QrcO<%KbkKj_Ce*zY>9h=aMJN4dMsQO2b_pyW+e+@@WEIB%8r7 zAzObQH0O8+TvdH-aJqF#^BC^Rj0$pS?u@3Za{YxlK92V(O@dL7U%}34hfzqM}3;8Y^Zu&?HX?>#GB=W;Q@i6Tot@_F5&{Ep@wy9?m3=o2~Cd`$HvSNntJ!~3!F`b zb-AARA&GERQ_D5T7RuoHN$+&fr7yN{c6EPi%Jh?aL|kg->30lcGGD)P6q_1DUrE_hB_A*#<=H6lshZn6cg+9m z^}0btNQfZHh!5R5$lv9wFk<=WlGuCS(1iCDyjj#nVLTt#a7ekRJT;%#<1fAW=8AvM z7JH3R)yWLfhfVf*3m=&8-pyw6l>ruq3<+5`{$`IrwhQP-GBpr0OR3rw!n)GoZ21Nnl2r*q zTfRN)3=aBT;z`dt`r$*wU|(o~SG9lLS}p*~{mn`5tn&@s5he>}qE>u+9og}8@87ck zIPoUsYtvAb$V}@#Z=H^r*8aa>J%T;;Z-)H3gkY*X!bS#rVYm2P+^3 zfFmc95h0qo6SCj0#9DH`Oc*~VEg$~ldyUq$$1BZ-^q?nZ zgN-VLUL;SzEn#e+>>v~tQtCr5ZP4Fi%4zT|t$mR6gaBDWX|ns1#j$&80TjOIx~ z`vQH10bZ3-imT$f?qf!73*3K6z7H?M+l0|-=5Imc2d9h$F1R_@6~UCSx;?kmRFn2CbaPgZtPHRiCH(Ii9`q{z1pfoBb*zEjTGs@;tt5OP=z< z8P9XC_BvQ|x0h*u&^zHz()IeV%N_e!*287>yo)4&!6&dQc?k&HPP2areMa*yC+&X+ z_5c52^}q1fm-^p7M*Xka*|~Ffx&C+O4|4u<>wWi_eBS!s+lyu2QvvK0@=eMm|C8gy0* zv??-=4r2g2G6O&LoWV>RrX-W&dDK+_yKPDGJk?&zK(MYThJ$VsOwsH z{iDu4NnlIjvmcjzSEeIn#LExb{l`x$dmrbDErZ^tu%EGgZ<&7Xb+pgqv%-Uq8X|(< z@UwDQCIC~XK4K}Bv5cUm)3rZrVoAcPA zr%jiyYgaBkisP>+fIgtlEV`i0t=7UHRlcR#e7whaFv!C$!lZaCs;rir!RdjE-ts#K zrE@NPbv`(0?|NU46M6P90j;BaS&utl%OC#wHO0>o#^XBQY(as$i8|}qy+4l%6RfZG s&zyPeSJl$I9^)77`T06Ws{X|R`SSDS=gZHRpId(Z502$;asavj04>V6XaE2J diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index 9be09c5..cea766d 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -90,7 +90,7 @@ sub run { config_app( $h, create_or_get_app($h, $opt), - { BUILDPACK_URL => 'http://github.com/judofyr/perloku.git' } + { BUILDPACK_URL => 'http://github.com/rage311/perloku.git' } ) ); From 39e2eec7b7e4bdbacc2de8770b91b87ae1e3dce7 Mon Sep 17 00:00:00 2001 From: rage311 Date: Mon, 21 May 2018 22:42:52 -0600 Subject: [PATCH 08/11] Fixed heroku generate command. Bumped version to prevent confusion due to prior typos. --- Mojolicious-Command-deploy-heroku-0.20.tar.gz | Bin 12970 -> 0 bytes README.pod | 7 +++++-- dist.ini | 2 +- lib/Mojolicious/Command/deploy/heroku.pm | 19 ++++++++++-------- 4 files changed, 17 insertions(+), 11 deletions(-) delete mode 100644 Mojolicious-Command-deploy-heroku-0.20.tar.gz diff --git a/Mojolicious-Command-deploy-heroku-0.20.tar.gz b/Mojolicious-Command-deploy-heroku-0.20.tar.gz deleted file mode 100644 index 57c5bd0f34b3756d53116fa443040770f9fa35cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12970 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 diff --git a/README.pod b/README.pod index 45bbdd8..518ad3b 100644 --- a/README.pod +++ b/README.pod @@ -18,7 +18,7 @@ Mojolicious::Command::deploy::heroku - Deploy to Heroku script/my_app deploy heroku --name happy-cloud-1234 These options are available: - -n, --appname Specify app for deployment + -n, --name Specify app for deployment -a, --api-key Heroku API key (read from ~/.netrc by default) -c, --create [name] Create a new Heroku app with an optional name -h, --help This message @@ -54,8 +54,11 @@ The deploy command creates a git repository of the B, + L, + L, + L =head1 SOURCE @@ -64,7 +67,7 @@ L =head1 VERSION -0.20 +0.23 =head1 AUTHOR diff --git a/dist.ini b/dist.ini index 04974b7..0face93 100644 --- a/dist.ini +++ b/dist.ini @@ -2,7 +2,7 @@ name = Mojolicious-Command-deploy-heroku auth = Glen Hinkle license = Perl_5 copyright_holder = Glen Hinkle -version = 0.20 +version = 0.23 [@Filter] bundle = @Basic diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index cea766d..237533a 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -12,7 +12,7 @@ use Mojolicious::Command::generate::heroku; use Mojolicious::Command::generate::makefile; use Net::Heroku; -our $VERSION = 0.20; +our $VERSION = 0.23; has tmpdir => sub { $ENV{MOJO_TMPDIR} || File::Spec->tmpdir }; has ua => sub { Mojo::UserAgent->new->ioloop(Mojo::IOLoop->singleton) }; @@ -28,7 +28,7 @@ sub opt_spec { my $opt = {}; Mojo::Util::getopt( - 'appname|n=s' => \$opt->{name}, + 'name|n=s' => \$opt->{name}, 'api-key|a=s' => \$opt->{api_key}, 'create|c:s' => sub { $opt->{create} = $_[1] ? ($opt->{name} = $_[1]) : 1 }, #'verbose|v' => \$opt->{verbose}, @@ -177,7 +177,7 @@ sub generate_makefile { sub generate_herokufile { my $self = shift; - my $command = Mojolicious::Command::generate::heroku->new; + my $command = Mojolicious::Command::generate::heroku->new(app => $self->app); if (!file_exists($command->file)) { print $command->file . " not found. Generating...\n"; @@ -311,10 +311,10 @@ sub push_repo { sub git { my $r = shift; my $cmd = - "git -c core.autocrlf=false " + 'git -c core.autocrlf=false ' . "--work-tree=\"$r->{work_tree}\" " . "--git-dir=\"$r->{git_dir}\" " - . join " " => @_; + . join ' ' => @_; return system($cmd); } @@ -324,7 +324,7 @@ sub create_or_get_app { # Attempt create my %params = defined $opt->{name} ? (name => $opt->{name}) : (); - my $res = {$h->create(%params)}; + my $res = { $h->create(%params) }; my $error = $h->error; # Attempt retrieval @@ -391,7 +391,7 @@ Mojolicious::Command::deploy::heroku - Deploy to Heroku script/my_app deploy heroku --name happy-cloud-1234 These options are available: - -n, --appname Specify app for deployment + -n, --name Specify app for deployment -a, --api-key Heroku API key (read from ~/.netrc by default) -c, --create [name] Create a new Heroku app with an optional name -h, --help This message @@ -427,8 +427,11 @@ The deploy command creates a git repository of the B, + L, + L, + L =head1 SOURCE @@ -437,7 +440,7 @@ L =head1 VERSION -0.20 +0.23 =head1 AUTHOR From b547f879285d363a0384ac8067b0ce80e85851be Mon Sep 17 00:00:00 2001 From: rage311 Date: Wed, 30 May 2018 10:35:52 -0600 Subject: [PATCH 09/11] Fixed links in SEE ALSO section --- lib/Mojolicious/Command/deploy/heroku.pm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index 237533a..5b10030 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -426,13 +426,13 @@ The deploy command creates a git repository of the B, +L -L, +L -L, +L -L +L =head1 SOURCE From 9ad53bf234347c22e8c24fbc9fc2be1e3668a023 Mon Sep 17 00:00:00 2001 From: rage311 Date: Wed, 30 May 2018 12:07:20 -0600 Subject: [PATCH 10/11] Added to README --- Mojolicious-Command-deploy-heroku-0.23.tar.gz | Bin 0 -> 13157 bytes README.pod | 14 +++++++++----- lib/Mojolicious/Command/deploy/heroku.pm | 6 +++++- 3 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 Mojolicious-Command-deploy-heroku-0.23.tar.gz diff --git a/Mojolicious-Command-deploy-heroku-0.23.tar.gz b/Mojolicious-Command-deploy-heroku-0.23.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a771f67cc2087bab07fdcba7ec1f5370584aea9 GIT binary patch literal 13157 zcmV-rGn&jFiwFRrxs7J^yKi}F@T{+{;@|rEYR&wsp6}|-X05rp)@ZEMzpK^PR@c_P zW2@h^>MfsfmisAV-wpjd|Jt~l`u|0r-P`d$3QzAZ19#{Ddb7Fm$p43U?!bRz=-p)D z&irrG*P69Q{y)TXPyWlHx08dr^S{}sJ=*^VdA^bVXFTSqpYyK@!rl45icOFFe}Lz& z;=dT|j)n`?KnAa^tX#)`IP2GD_`kLWe^~7y2=E`y|B>JO=$~s%q}g)h7-1w@u&}jST+dz`E%Jw_(NmL`(lLC_D3U_E$7fayx1Rdwqc27 zE!7vHr64Ntk>nkfT^2)O6&n?e;wRN=Rd6u=g$>b{51wU;uxBBAg2K%v0 zbYdHSvQO!k565oxNU2Gjt+NTzB}r4@3ce=|Ajd$6h#aSVj7-~a}Mg2CPN8E&u=sM#lqnz z;zJ(8oP5ApKZ&B`B8<-%5P~H!&lE}xw*A5|2yI2-DI-zP&1g30sWg1yxU&5^NuJn9 z=5%7xB>2l13eru~SuE~{V0Fz67Tf4{I&AB0 zcYkId?PWHzuV2O?aFN=jVHv7!7seyR-Z;1Z?o;;v@AHlRpBQ>W7BpBpFSG8W~Tw;DF1E#=C?x zUmH90Kk~jtln{EOJi%m~vZdcThh6a3;DkqgkpWIV90g&@iU+)F3^y*>QfKeC%iaC| z+V_rj4_@sYUa>D<4Ei{2IrT~gJU*L#G@zNClY{BB!z2RQlubf8?F>%oi04UMQD996 zNC#7|i039n7=$`3Po!(DW2$77UxU=;m0AJZlK{{P{V4NPd?Ch^hy-u;cRN>AH%8`` z)Fef06R^E28{LDq_IwmLy*`B`PMd$uQ@@vcVjut)!5-l4WkBTVh;Js~qs?u=PRP|S zLRl1w96HMsxY-z0eTg?RTdseM6P@-YwqGraG5#oYKJv*IABP!ZpxuLZH4I1vqV}cN zLSTiUh_Ryc3LQxAL;VCo$FjMSYOg>jS!WXB_x3qYPm_#)Ik%^=lkGH4M3yPf$7xKf zQRIh|QCxXIHrNikd=`XibR9-s%2t*ssDILX0v9D}uh-Ya&Nay9UY z)cx|3SE0U77gcr^<}Aww_=BVbNoQ4B?R&OOlwsf$gOnmMpmj8cu^I~y9>?kFVU8mQ zvLV=hcFGwFL)Z^_Aj0yn&z=MzYcV+6Gvxo_hq*4Izez*6t|sGLZo#D1_iPJvYmfjo zpzcL=(6GvJQPT4xPj;v+9f0WhDKAK`jJ{Xc{P{kyr069u z-R>I(P%%X^46{tq6!uYmlJa2!Q=k_>=Dk6AX;7(1X&(V!awLIFTLcM2)2JK+|C~d- zHDNRb<14vB#xe-xWgIw3#%}33K?0hTmk^<4wuIXQ@(8K*lGFp6h3l8arj2Fafvxug z1%5O>1(Q$vAW&rLNqYw%Q9(d3uov@6f`*`>rXEV>q#UIJ1TpMSJd|GvMHnWLoG99h z9yWtBiT+@j1hb-sT(Xz%cHX`^*xLTpdw2Mj6kG;>U?&FSQx~jEH3d0p*6UT7vvQ%! z23!$9MVmcIhiwRAL3EG|7zE?iGl+{>iH5sI#!u)JN-c9;SM`@zc{@)dXB$sRuwOkM zRfu*(89`%dmOK!*L~I+DiHz4GGbczuJzC3`Rj+UiG%;pT11S%)Tx?T}L1u^zOM^5b zrwmnHnx*p6kY}iO%WN|d_5j6a(=%yw9IH`kXDEPWZez7u};*J9}-M(Sx0jicZrS zmvyTo7?^Ma%Ac(I&*R|7rRt*IHmfaaE;fnyS5zuj??MlBSp7uicQwry(OPo`_5sH- zY8lZ@Zb8o_Sf%%aus0C-Dl`2;rr{zPM*&&|7KI-%@7DV9yLoDa)(;WOBOb4!T77FZ`?qXF`z51iiB6WkfNFz3rIWNNyp%~kXcf|Sl(1GhpUataZ^rT zagyPVK(3XOR~%#HGwNMxCteSfVG0^5!`W2iqCrHm!hK}qPVgw>ax%KaM!+k5t&0It zr~Cv!qbmxY6nVC4MK(1DRu|?Tf>xe_4a~?yD=*0mcIVMF0m(^M0tdNKWHj264kQmemY~jz^W!^BGUHq$LnpqII=wcksOhE`*ciL6}qwr<8^o5-<5( z%sr4zG@ZjN3TU1!1h$BFWr<8%Yg@5MyO?5lnMHgtr>{o10f7eowzSP$Jn%*!Ag zgEY`2vJxc4g=)82;EiGEQdW@BucGTZPo$YWoca&>prmLw&|sy4FWI5O0!-BjYn!AW zy&Tz#o7dZ+K7|_P!W1Cv68RfwfM@}{wJ;8qKdIz1eQumj(G2a7S`asqT9}d3_Y9*> zkR^!M?LdT;V$P;$ltj`CN0~!|Y?-u5z{OA1Tc}$3=Uy}pI7kN^pne(@uJ5LZTsO>o zn&CDsc`}-(chqlVoN7kTWXU^z|4f8LR|;2){x9~a(pQ1p82$!zgfsPYV(h!%9E?Pf zp+#VUxI~(`DS;JK@B4}R>?_%oLRjFZEWwa>BJc$G zJSfCxp2Ip!pXPAN7evJeFm{0=D1=4o2NA_x$%DJCiZoCP0jkr!L|GiC(N)EqOj%4O znGUq-aeI2QJ@g^ONv{=EMC#Jekm-u1VIalN#&O`E_JCckKhBe08ud5&J~}qG%5XRi zYLlUL^6AJ={UNHxqVz4M(?#u8d#WAN>1FM9U{Z@5uS;^01o*OqOm`~s za6tD?6ro68Zw4{gYZ~%%KeCugm5Cy%&C3r`bwNWka{SXYvR5J z2feHO_e}azizK>!qeK_cJuL?6s{=s>k!=v!T;ve8(NU*pfm5^%6kd)AMPxk2r&*qs z=X_1CBE7+72HuoY7ncrZex%r!5cbYnmhGtu zE`u`&N16?jJDTHyL9}PZBqbzIR329>TFATsZkat*I9?j>hiYlrlkq*0rX6qUX+Xj2baY4js_f# zIF-xw!5{O_LC^eC@K#0K7%!{&FYtF;N8epSLg0x)D%QlZI5E**Hn#dgMmIQJ1}a+z zJ9N!bMvF|chjdlurtemXI;{q6Nee7Sy|#t`*!^s8|ETi}d7v1kQdwb6At|~SU@2nuJ_Jd; z09$!F&dHR>o#Itz*fTP6DUU*69&n}C+zbKEL*U#IUMln9a*fmvI?Z!r|*MS0O#m?!B( z-Eq8p(Ho~JoeW_LrU<(1jMA;hSu9{>RR}4Ui3cztCeNA95R^DydEpYbVgVrcYjL0g zC46B8gz7-3A~gqa#cKPw7vgD+H!Bwq0D{7S{mBh#fv^_^DufB_Z4A-Ugj|10QkbxC zGH$MPaM(HQ{I_?oTLOWm3V10Dl1yOuS|*|OiYgfnoH_M-9~ainDycB;MbQNXG8T2R z>R~X-NTE#4Hr8^J^sHUry8rHQyJJAOC!!LZEW)xZtidWu-QOL( z**~6DeZ@WBW}{EweM=#lAC#)gtQ zufPp!wf+appWkX7MB}qCZnaP_@F!*GYi_OHaH&8N>y3J{4D-TIV=!VEpozlJ&gUE} z=`v$7^kD?}K7}(ziP~0rh7lZQ@Jm}SyGMsx+eam{LQ#7Ylo>AxH5VfcRTrJ0)30}a zd3V_Hz}UXqIqY<4pa>~S3oxQ?y#A*mxzekh?h%Fp0{o3iBNlzTv)$S2$~kB*Me{;9 z*ZNapj&Vv9Xsdcz0j%b(|D^5?48WojeUt^AbE_&)wYnN@+%l=o0#uRl7ky2)UMp#$ zNpq~HHN{@=y58KzQKx$(*ip)>&)l2er|dG=il-T zK==6mms+#_`1zlQcy7&qTl{H~vWhIvbg)9(3k*~X9g;Mo}@F{esCDpdcw$?_lb+*}LUQ*8b@kQuj^eU-BxHJ^yqeiVcd=Rq?7X&cy5NHSmH~J+-KD zp?9NFOua`%?}Dn!>2?Knt~6HFZ_wYVl0}<5*mQ%+=zFW_gcEFXzRlcbIX92d~vf1NV+IP8Pb(CNSJfghjo%#z73OG%Ek+d0~DC&S1xa>>?VXY18&#|rR! zRl+#5Zu>n0*AATjLNcrHT`V(yS%d0*G}=G873}B1;SD_ z+X^PJKMZ@a9I3@>mNq!v=>*X!OpdxgXJluV+4jNK9suOIj~-_Xy;uyc1~uIJDn=GI z7>XW`Gv1;vFSCX)-a-Eh@fxR5i|MZo3dRw4XisjIjME-o!k%%g$sp;cSUVHZxv32(IgGe2Dvv7B~eo#l)aE&n`2oYHeb`n z2u|R1i39r7!sbgq3wzdc41dqD;gI{mki%GcS#@IRFAiGtAn5g<%o5H;W6;okwak;? z)asUDVi&Ika0-LF5Fa$bfIgmGhsqA0SVmpa1wW;M-%`F~!h?g3;C-WUHz4Md5tk5Q zCxRne@#J-y3=fikRoN&B+%!pYc4DEgFU3r_`z~}^1OW@c0}Im@^7|ce%A=8gz~`3s zUq*BHTjT5Yf2Fy$+L(?1*J`Ve_WvOsivF{t|9|aW-E-SUl7FASVoooXYAHst07~Y|{q5Jk?w${jpzWmga&>iLZEX?(nCa>1>F@5T zo{;~{y*QO&+x^LbeR*{J2DX31v)f4Gl)Qc}qjVpiaCYP*S&%*nbwPT=A_)_Ad0tpj zv5_)Oe^{Y^u|fJ{3BEx5eqP!{>I5J+>}&W#?~7zUM{(6GS=_IXs4LY$njj1~_(M$- zwCEC|q+=K8WW7ubk{NcJOCSqW?p{Ny7i;k4NhEyTi_fy}Eu&Y{xoB zQloJH!syX5PY(ni*u$m`Y}wvo(l++>F};!y3bKVARWxLFM@rB6EYFLUeVdmRUcKyC zd-U@7_~`KX)zPuF*P{;2)}{Si=L<$K_kgM@$q>eQlG==LCeVM4CZ6MAhMG{FP0gb2xtrYx+FV{@XW;p(` zj5Z^~>^l3%1`qk!yGZ6m>4A{E^PIbNamB9VLiUOABOa8}Rj+bW9@)*dxlxvhuv=ES zo?d>0vPG}wyvrYv*#5-L>XJ`D{>IUyM}VbB@6rOz-Y}2iu?3Pb%Ys(ecBL!g;B5&f zY{o>!4I;Dqh3pZ~Y!uDH*`!Gsw;>7}cAuef8LGW#EyQqVO5_e?6F~Ok6zL?zXQB(! z2UG6U2gKZ`m6a+(&b?1i)?2lV{}k^iWz=?`J_k-|=84RWK^9yn!%#Q`pJ>&94)#tnhn)Q<*lAgH(}JPqcYeN*0{mKR$>Qt2%md8^Qj|1Jp!HH;cL`c;a?n zKt(Byz0!L+s-exGlQFG$E9)9pJRd{dnU#bHpd5{-ltH~H-BK_rP6aJUD4UO+qim%t zIfAJZd#n&}M}pF0T$u18M+!LD`#Q9=uWO3lw zwdz5r*}F|6npd5azpH{>Kp-}YH`N06t^~e4QngaTXGP*a5;0?E7er6EQ7w(jpX&NqS`#esD|VR|?qUiOc#(x6nj=5~lZiMzG*$vT6k&}`_0*wBm_7{#8^C$(Mb26#C5RuQ6Ve!6;+Lx6(wL?+$@NsfmrVE-B0uCGMXTm$81(Cfc zG#~M$IwonOd1YUwRg=teq7jiQ;bSN7u!p23-=`u${S6_@hjj@(&tlE_onZyRsfRK# z)56O@3o0>KmI+`*GYL344rFSu@50Wu>4}d~jaHkE>lIl6H2Ctt97{266Xhf%yi_#{ z?Js{8Hb|!ZBw3ZBHFyCceP6gWYf&&qnr92JD!2b-CGCt@o4`0sp{!L-Wgh7qBlV@0 zn_}y>%UitZ0>W(!0vQ0aKp{Btei;#R2$f3itpEa@ApN?)zb})bvYuZyZ3JFmp_|`1 zcEJNN)hN5j$(pR~0(2s@!1jiH0<1W40uP+ccod?}V#b`2fWs3Mg-8>D3XGn+V#aL))3O_W78Qw;1E*DZLU4S1fjf4P--7CUfBlS@qzHu5 z;iZS9q%K^JU8I%D?t<9y0%)gz^r4rSk>l_&wMT=&6mgr%Y7SqbQ&v(Z4D)+ct_W>p zHSvZ>j|#LE$V!rkI8EBmV?hS!MC5F?KpQA+%KA07=p}5}gGL2yA3EU-ej63Fe!KJ_ z+C+#-KR5{H6Wi9jt2O^0Ga|*iCmTgaP<*s_n-pyohCCdJ{U_k#F+*pHMo!7&Y)E$5 z|LMW+;*Pe?9Th&(s~Iv!uys;XoxO=_GubgBe05tm`-Y&q1mcr>(wOcOC*zZaNQ!LX zs>CbRls1??ZxQLbhESP3CLpf^NXf)L=Cjp2RfDU_QKGCg6tqYY$f0GzEmq5(*ho1G zr@JH!q{{i7%F5_{^=0*86W&OjK^eRQ+(`|Y&~tyZDxj01tv#JLApM+9NSP+R9LStE z@F3$yDD5$W^issg7o-TRip^fiL6{^Hac;5K+V2GZ#-(wSyb$}EkD+#ZJOon#n38}S z%*vM9a_-uJFYB&C*gF<{5e3N!)m#C-Fsz^a8pR1A@wq9g7;TTBV!+Y6!pOcJxzn@hwv6B~JvFCdiC zf}135+JW+(I&fG(IS6BB`}Gq9tuk#N7&D5%mJMb;AU2GQ$!$jPtLukJweovhAEBH&&y4?a6=s@YH@Q9rw*OKOWwlvB+?y-#Db73 z`}XNgcFlp`iO}30*^MeE6dnlIT@jh4MN(wWOb9f?TyyCu z(}}*C6{-iGu$q2e!i1cy10QwAZnt@DItz$P>3GM&KV)60>qlCwC0bKM)zetIYv+{A0S*+=a_&}zdJH1ZzAh|y5nh0`6zoP+UaYjpW>gBEQl!~}QTk(>-Hy8g zSqy~pwiM}O##W&Cj}a|#ZL5q8q2FoL$%W;KETP~)SDs2s zxm70ZTiqLr)%-RsfpqBc(4*zv`edGg`{0F-SXHYHjzt^hA(7Z_zUFs3^ znmYX$bqDg~iANVZS;g5Qv-=2PTBfIPwk+I`z&z z_UIdp%t3sI2#o4DK6W7_5U0|79q${{?K-R{90AVfDNa~vI3D9QozjO_2%-V^8zT;Z zMY5csV|Tw|;jOSBK6RgyA%vsN2d{W^L?^-JDydcy!JEw@vyK1c;`BBSgUd+yJg?k9 zh~JBkVoKa)B@D}dBFW*zj=z$~&>z^3o#C+4AK&1`pGdNGPdnG6t{uPc+NGJvHQ@j5{xm+y7r>;5uWznPPYMqjt4|sW!QW7 zer(?lF3!3`4!(Rxv-5}csxut-x+6nyeCVCk7q!8oBBO!5?A%D4?MBIi!1RH* zI#m!+1nTU(9RLS!37#HJphMjmeO2yn!zWn$a~KwqBn%#bCXBntQ`Dcb*u}_Po=(xE^lN7|lE& z6k%I~rPn%VA9~5tssv`>1G%ES@_s2rV=6rSZv zZ5!)zGMt-JgX!vPQPFxYJvu8xifWm`h+m0v|FD`TWUOi?(Jh?X$o+w!oIGSH>o(d1 zTJs08%GBkC$V;C|u$4g?C4a>Z!tbTPe)@;MdL1$R1p$gCf*di0CT%3iKzu-E@cmas%is^&n`@5$ZOc*mDi zs&7i()%eSXV%=_DaqOVfkk11g>6N0@>0@+;X!oR-9t<5PQkEoTaf}_X`8712l?n2V9=O z$w{RBCGD8M-%RCgZKU$j2hHico7uda%xjPz#cg|IS1|og!%^&al#DOv(%c`t$QQIG zNlhZtz~XuWLXjF%5p6_a!Ioo)q)b;!+TjGKEPUKf?r=ml0!JEg2Xe*s4rf=?0*tsO zQNtGR7NmbaisJ8UW`AmJ9pKNOZTp{d!I8wSgz># zX9*-dy=aGnv7JWlL=AKQbcT6=*A0%qBM1X<*^I$jJBg>8yodp5OPA?~^%6E9`+Gu& z*TKgy_^*|M`9E#vGKIQ7*wTB#|5)qS2B``zBxK)Ab^CM;sCmz4CPy$qfy& z^YMUW7Y=N!KZXB{i2Ma{dj9~v!odR$=b0&N7z-vFw8 zk1FPZ+2db<6SAQTK4s%IoxyzZOUoXU(pF?MsZ_A;K@0i%WyYajdi?{U^+d@@^}?sU zO2D4IO8;R(amZ%fh&^r}{b|J?O_R$B+_2AzJZ!Ng{;LT+(PbuY|W!eb**&AafN%KC|3?pObz> zYo2?EK@vQDORsn&1uIToD4kisPUN9U`1X=+uapDX0U#NfBBz&mnbGcEmz0oOEhk3`P;e@Had zAtf4jsX(H05l_O?+7m|oWRe$CrU@SvhW9aK!8NVhLAXh9dm!kihn%@`CR(@G3j@E> z%wKin->E!~2*{03Je-FlM(pzLUldZL@QGb*x6l?f?o-bIVe+I;6+>+qa2N>2eRY?n z3bslUr?vl!$Piv&4GP^RWhO;LB)eVG3~GO-D}SkiW(gp}AQOFKndVE}K(~0zXOF1{ z^GYORwC(zrJw-9c?F}DjV?(If}o?* z^@*zi=+By@k;vgk-p+xdAKE94+;LaM?D;skIGjGN)VwU1X^dVt{jZM zEj?O5BBU2geM%IDXv1n{(H&-WIRG0eraa?TK32`B;_}Ogy+YThXA~fWZ%mXe%q%9P zxWd@qku2=2<&ZI8HV?1o{qD#*TPF&CHROOAM_nlkMxD<^?Y0u&Bzi(ZJD+6CYl30| zrWmEaChSYOUE!L-&!AYOEhSt#vz9+e{sk*-^>hd3cj?slAfl>>XF11c`O;B+vPrLP zm}ZKAm<@rQnS}i*% zC9zhCMp(*K9SN9m z(hFx!1B?ua<1_5@VtypyoW> zvgzFK%oQ_W;7y76-+DS@SME+Ci#HtGB3V~!Q4&R4BT~NSvO!rraigkOX@}H*ycZt*Tgi+n^y)`P=HrjHnUp&UVY)A#1~+w9 zY~&ugWyoX>y|u#-StvWlj~~cTeDJiiV}r!qXfA9%Vf7{6g%XK6o9qy&IlK2V+NiBP zsx9u{c4A()w^PN7Mx|KN5EtwEM0%WzUNhFA$0;vC>Wc^k)bg@iElf3 zJwCb83nOH%t(%U1fQ?1Grk<;HBbeLQ$d260CYh%Pfn&g}uAz{`u+F^e6Yp)Pp{S94 zpe#L^qIF+ZruB6>&(m}z+40<-8V6?J>JOMSrv5I_cK*d4U7phkOz(`VCq@s~cO@}nb$*t6!3)U8&Sku&^H@{}lHnBT(UDHv(#-wj# zL!38xhtp;4jJZ`QhFrRs=0%z6&Y-uo(GB<7w3C*x6U&(hnv*p_wG7Ie)DIWsCz(PV zWnC1P{m=CO`NsZF+ST`u&GD7~f3IG?+`9km=!fV2e}Bp^bbk(NE4vg^4Fb_~zKqlP zF}~?4azOqM0KlA^5Uc;dsa)ZBVxF(bB)62o%2LI?> zT@kx@#4W9vFRhWU&dDmDa!w$zsj|}BHA%`{$^DeFIOVsJX$QX9{!T+QfbQt07`mfI z=xCmB_oglrIN|U+U&f9;1vK{LLA$TWRpaPCn$HU_{O-t%br<^K0Te8R1RT~NzxJDKo za>Zj_+aMEEr^dUMd;@EY34%BO=x=^!*u+86HHgA&Mc!ej%2EBjL;xa>8r{s_C&1~ z6_5LUJT4(@=XTsnVar{1?=pfXxEUDw$E29u{U@m&l6kW%5Du*D>V6h4(OtKw`?it< zXH*l*<;M)otFJ?IH8>N`x@h$@p*v9G{F9q{T^S0FdHD9@#?{Tyqjy>Lop#S8n!*lA zwJU36qJ<&a0U%%2fPCG&6(GxUlPEbXDOZ#8;o_W_2uFu@lyK_5zC+mgukZBE>di5 zWIWDN*N%h)mucI)u{pX+g z`$qjw8n^zzIlgxP$7@pdHu`^lPmiDVzdzw8C8_FduJxCwneSgEla_Dg40>VL-{xHc z4cQ3)mzs?VAaW4GeJNkRAw`-a`}SLx_xyYQJ^!A6&%fv2^Y8ih{CocWzy19; LqyUjL0LTCU#YUDw literal 0 HcmV?d00001 diff --git a/README.pod b/README.pod index 518ad3b..4a40fc8 100644 --- a/README.pod +++ b/README.pod @@ -45,21 +45,25 @@ L =item 3) B - hello deploy heroku --create [optional-name] + ./hello deploy heroku --create [optional-name] The deploy command creates a git repository of the B in /tmp, and then pushes it to a remote heroku repository. +For applications with additional dependencies, you will need to generate a Makefile.PL and manually add your dependencies to the "PREREQ_PM" section before deploying: + + ./hello generate makefile + =back =head1 SEE ALSO -L, +L -L, +L -L, +L -L +L =head1 SOURCE diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index 5b10030..f9fafba 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -418,10 +418,14 @@ L =item 3) B - hello deploy heroku --create [optional-name] + ./hello deploy heroku --create [optional-name] The deploy command creates a git repository of the B in /tmp, and then pushes it to a remote heroku repository. +For applications with additional dependencies, you will need to generate a Makefile.PL and manually add your dependencies to the "PREREQ_PM" section before deploying: + + ./hello generate makefile + =back =head1 SEE ALSO From 2ac98d972a3db75dfc9aa3f32381d1880b7a0a95 Mon Sep 17 00:00:00 2001 From: rage311 Date: Tue, 30 Oct 2018 19:42:17 -0600 Subject: [PATCH 11/11] Updated generate command to use new Mojolicious::Command::Author namespace. Fixed return value of git sub. Fixed erroneous error message specifying --appname option, should've been --name. --- Mojolicious-Command-deploy-heroku-0.23.tar.gz | Bin 13157 -> 0 bytes Mojolicious-Command-deploy-heroku-0.24.tar.gz | Bin 0 -> 13202 bytes README.pod | 2 +- dist.ini | 4 ++-- .../Command/{ => Author}/generate/heroku.pm | 20 ++++++++++-------- lib/Mojolicious/Command/deploy/heroku.pm | 17 ++++++++------- t/generate.t | 4 ++-- 7 files changed, 25 insertions(+), 22 deletions(-) delete mode 100644 Mojolicious-Command-deploy-heroku-0.23.tar.gz create mode 100644 Mojolicious-Command-deploy-heroku-0.24.tar.gz rename lib/Mojolicious/Command/{ => Author}/generate/heroku.pm (62%) diff --git a/Mojolicious-Command-deploy-heroku-0.23.tar.gz b/Mojolicious-Command-deploy-heroku-0.23.tar.gz deleted file mode 100644 index 1a771f67cc2087bab07fdcba7ec1f5370584aea9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13157 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 LqyUjL0LTCU#YUDw diff --git a/Mojolicious-Command-deploy-heroku-0.24.tar.gz b/Mojolicious-Command-deploy-heroku-0.24.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..1ce5ecd76e3156855d65b52dbddcd6648074d2da GIT binary patch literal 13202 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 =head1 VERSION -0.23 +0.24 =head1 AUTHOR diff --git a/dist.ini b/dist.ini index 0face93..88b0c58 100644 --- a/dist.ini +++ b/dist.ini @@ -2,7 +2,7 @@ name = Mojolicious-Command-deploy-heroku auth = Glen Hinkle license = Perl_5 copyright_holder = Glen Hinkle -version = 0.23 +version = 0.24 [@Filter] bundle = @Basic @@ -10,7 +10,7 @@ bundle = @Basic [Prereqs] IPC::Cmd = 0.78 -Mojolicious = 7.20 +Mojolicious = 8.0 Mojolicious::Command::deploy = 0.01 Net::Heroku = 0.20 Net::Netrc = 3.10 diff --git a/lib/Mojolicious/Command/generate/heroku.pm b/lib/Mojolicious/Command/Author/generate/heroku.pm similarity index 62% rename from lib/Mojolicious/Command/generate/heroku.pm rename to lib/Mojolicious/Command/Author/generate/heroku.pm index a4a9cf9..508b4b1 100644 --- a/lib/Mojolicious/Command/generate/heroku.pm +++ b/lib/Mojolicious/Command/Author/generate/heroku.pm @@ -1,4 +1,4 @@ -package Mojolicious::Command::generate::heroku; +package Mojolicious::Command::Author::generate::heroku; use Mojo::Base 'Mojolicious::Command'; use Mojo::Util 'class_to_file'; @@ -15,7 +15,9 @@ sub run { ? $0 : 'script/' . class_to_file($class); - $self->render_to_rel_file(perloku => $self->file => $script_name); + $self->render_to_rel_file( + perloku => $self->file => { script_name => $script_name } + ); $self->chmod_file($self->file => 0744); } @@ -23,27 +25,27 @@ sub run { __DATA__ @@ perloku -web: ./<%= +(shift =~ qr|[\./]*(.+)|)[0] %> daemon --listen http://*:$PORT --mode production +web: ./<%= +($script_name =~ qr|[\./]*(.+)|)[0] %> daemon --listen http://*:$PORT --mode production __END__ =head1 NAME -Mojolicious::Command::generate::heroku - Heroku configuration generator command +Mojolicious::Command::Author::generate::heroku - Heroku configuration generator command =head1 SYNOPSIS - use Mojolicious::Command::generate::heroku; + use Mojolicious::Command::Author::generate::heroku; - my $heroku = Mojolicious::Command::generate::heroku->new; + my $heroku = Mojolicious::Command::Author::generate::heroku->new; $heroku->run(@ARGV); =head1 DESCRIPTION -L is a heroku configuration generator. +L is a heroku configuration generator. =head1 ATTRIBUTES -L inherits all attributes from +L inherits all attributes from L and implements the following new ones. =head2 C @@ -62,7 +64,7 @@ Usage information for this command, used for the help screen. =head1 METHODS -L inherits all methods from +L inherits all methods from L and implements the following new ones. =head2 C diff --git a/lib/Mojolicious/Command/deploy/heroku.pm b/lib/Mojolicious/Command/deploy/heroku.pm index f9fafba..9e988f7 100644 --- a/lib/Mojolicious/Command/deploy/heroku.pm +++ b/lib/Mojolicious/Command/deploy/heroku.pm @@ -8,11 +8,11 @@ use IPC::Cmd 'can_run'; use Net::Netrc; use Mojo::IOLoop; use Mojo::UserAgent; -use Mojolicious::Command::generate::heroku; -use Mojolicious::Command::generate::makefile; +use Mojolicious::Command::Author::generate::heroku; +use Mojolicious::Command::Author::generate::makefile; use Net::Heroku; -our $VERSION = 0.23; +our $VERSION = 0.24; has tmpdir => sub { $ENV{MOJO_TMPDIR} || File::Spec->tmpdir }; has ua => sub { Mojo::UserAgent->new->ioloop(Mojo::IOLoop->singleton) }; @@ -48,7 +48,7 @@ sub validate { } qw/ git ssh ssh-keygen /; # Create or appname - push @errors => '--create or --appname must be specified' + push @errors => '--create or --name must be specified' if !defined $opt->{create} && !defined $opt->{name}; return @errors; @@ -162,7 +162,7 @@ sub create_or_get_key { sub generate_makefile { my $self = shift; - my $command = Mojolicious::Command::generate::makefile->new; + my $command = Mojolicious::Command::Author::generate::makefile->new; my $file = $self->app->home->rel_file($self->makefile); if (!file_exists($file)) { @@ -177,7 +177,8 @@ sub generate_makefile { sub generate_herokufile { my $self = shift; - my $command = Mojolicious::Command::generate::heroku->new(app => $self->app); + my $command = + Mojolicious::Command::Author::generate::heroku->new(app => $self->app); if (!file_exists($command->file)) { print $command->file . " not found. Generating...\n"; @@ -316,7 +317,7 @@ sub git { . "--git-dir=\"$r->{git_dir}\" " . join ' ' => @_; - return system($cmd); + return wantarray ? qx{$cmd} : system($cmd); } sub create_or_get_app { @@ -444,7 +445,7 @@ L =head1 VERSION -0.23 +0.24 =head1 AUTHOR diff --git a/t/generate.t b/t/generate.t index 53e8d4f..c000b69 100644 --- a/t/generate.t +++ b/t/generate.t @@ -1,7 +1,7 @@ use Test::More; -use Mojolicious::Command::generate::heroku; +use Mojolicious::Command::Author::generate::heroku; -ok my $o = Mojolicious::Command::generate::heroku->new; +ok my $o = Mojolicious::Command::Author::generate::heroku->new; ok $o->can('run'); done_testing;