package Common::Amazon::Config;

use strict;
use warnings;

use Exporter;
use YAML::Syck;
use File::Basename;
use Class::Inspector;
use Sys::Hostname;
use Config::Tiny;

our @ISA       = (qw(Exporter));
our @EXPORT    = (qw/get_aws_creds/);
our @EXPORT_OK = (qw/get_aws_creds/);

sub get_aws_creds {
    my $user   = shift;

    my $home = $ENV{"HOME"} || '/var/www';

    my $hostname   = hostname();
    my $uid        = $<;
    my ($username) = getpwuid($uid);

    my $conf   = Config::Tiny->read( $home . '/.aws/credentials');
    my $region = defined $conf->{$user}{'region'} ? $conf->{$user}{'region'} : 'us-west-2';

    print STDERR "ERROR: Unable to access credentials for '$user' on $hostname as user '$username' (uid $uid)\n"
        if ( ! exists $conf->{$user} );

    ( $conf->{$user}{'aws_access_key_id'}, $conf->{$user}{'aws_secret_access_key'}, $region );
}

1;
