Help language development. Donate to The Perl Foundation

Sparrowdo zef:melezhik last updated on 2023-01-19

hosts/hosts.getero.raku
use JSON::Tiny;

my $data = from-json("/home/melezhik/projects/terraform/examples/aws/terraform.tfstate".IO.slurp);

my @aws-instances = $data<resources><>.grep({ .<type> eq "aws_instance" }).map({.<instances>.flat}).flat;

my @list;

push @list, %(
  host => "docker:alpine",
  tags => "docker"
);

for @aws-instances -> $i {
  push @list, %(
    host => $i<attributes><public_dns>, 
    tags => 'aws' 
  );
} 

@list;