X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDist%2FZilla%2FApp%2FCommand%2Fprovision.pm;h=f7a42b1d893866c1e9b6fdf8a25ced56881f45f6;hb=5aee843576f9893e240c0180bf8bbb56212b8216;hp=3df6420db7d5a539d8aa24acbffced3faf403c5c;hpb=cb52ec3a6a74e986aa3436b482a2a8c2bb790f9d;p=p5sagit%2FOyster.git diff --git a/lib/Dist/Zilla/App/Command/provision.pm b/lib/Dist/Zilla/App/Command/provision.pm index 3df6420..f7a42b1 100644 --- a/lib/Dist/Zilla/App/Command/provision.pm +++ b/lib/Dist/Zilla/App/Command/provision.pm @@ -9,6 +9,8 @@ use Dist::Zilla::App -command; use Moose; use Config::Any; use Hash::Merge 'merge'; +Hash::Merge::set_behavior( 'RIGHT_PRECEDENT' ); +use Oyster::Provision; sub abstract { 'provision a new Oyster VM' } @@ -32,15 +34,19 @@ sub execute { my @hashes = grep $_, $Provision->{Default}, $Provision->{$name} or die "No section for <$name>, and no "; - - my %hash = @hashes > 1 ? %{ merge( @hashes ) } : $hashes[0]; - $hash{provision_backend} = delete $hash{type} || 'Oyster::Provision::Rackspace'; + warn Dumper(\@hashes); + + my %hash = @hashes > 1 ? %{ merge( @hashes ) } : %{ $hashes[0] }; + + my $type = delete $hash{type} || 'Oyster::Provision::Rackspace'; + $hash{provision_backend} = $type =~/^Oyster::Provision::/ ? $type : "Oyster::Provision::$type"; $hash{pub_ssh} ||= "$ENV{HOME}/.ssh/id_rsa.pub"; $hash{size} ||= 1; # id 1 - ram 256 MiB - disk 10 GiB $hash{image} ||= 69; # id 69 - Ubuntu 10.10 (meerkat) - use Oyster::Provision; + use Data::Dumper; warn "Config hash: ", Dumper(\%hash); + my $server = Oyster::Provision->new( name => $name, config => \%hash,