Net-Amazon-Config

 view release on metacpan or  search on metacpan

lib/Net/Amazon/Config.pm  view on Meta::CPAN

    }

    return bless \%args, $class;
}

sub get_profile {
    my ( $self, $profile_name ) = @_;
    my $config = Config::Tiny->read( $self->config_path );

    $profile_name = $config->{_}{default} unless defined $profile_name;
    my $params = $config->{$profile_name}
      or return;

    $params->{profile_name} = $profile_name;
    my $profile = eval { Net::Amazon::Config::Profile->new($params) };
    if ($@) {
        Carp::croak "Invalid profile: $@";
    }
    return $profile;
}

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

Net::Amazon::Config - Manage Amazon Web Services credentials

=head1 VERSION

version 0.002

=head1 SYNOPSIS

=head2 Example

     use Net::Amazon::Config;
 
     # default location and profile
     my $profile = Net::Amazon::Config->new->get_profile;
 
     # use access key ID and secret access key with S3 
     use Net::Amazon::S3;
     my $s3 = Net::Amazon::S3->new(
       aws_access_key_id     => $profile->access_key_id,
       aws_secret_access_key => $profile->secret_access_key,
     );

=head2 Config Format

   default = johndoe
   [johndoe]
   access_key_id = XXXXXXXXXXXXXXXXXXXX
   secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   certificate_file = my-cert.pem
   private_key_file = my-key.pem
   ec2_keypair_name = my-ec2-keypair
   ec2_keypair_file = ec2-private-key.pem
   aws_account_id = 0123-4567-8901
   canonical_user_id = <64-character string>

=head1 DESCRIPTION

This module lets you keep Amazon Web Services credentials in a
configuration file for use with different tools that need them.

=head1 USAGE

=head2 new() 

   my $config = Net::Amazon::Config->new( %params );

Valid C<<< %params >>> entries include:

=over

=item *

config_dir -- directory containing the config file
(and the default location for other files named in the config file).  
Defaults to C<<< $HOME/.amazon >>>

=item *

config_file -- defaults to C<<< profiles.conf >>>

=back

Returns an object or undef if no config file can be found.

=head2 config_path()

   my $path = $config->config_path;

Returns the absolute path to the configuration file.

=head2 get_profile()

   my $profile = $config->get_profile( $name );

If C<<< $name >>> is omitted or undefined, returns the profile named in the
top-level key C<<< default >>> in the config file. If the profile does not
exist, get profile returns undef or an empty list.

=head1 ENVIRONMENT

=over

=item *

NET_AMAZON_CONFIG -- absolute path to config file or file name relative
to the configuration directory

=item *

NET_AMAZON_CONFIG_DIR -- configuration directory 



( run in 2.061 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )