package Orchard::AWS::Credential;

use strict;
use warnings;

use FileHandle;

use Orchard::AWS::CredentialProfile;

sub new {
    my $class = shift;
    my $self  = {};
    bless $self, $class;
    $self->_init_;
    $self;
}

sub getProfiles {
    my $self = shift;
    my $file = "$ENV{'HOME'}/.aws/credentials";
    my $fh   = FileHandle->new( $file, 'r' ) or die "$file: $!\n";
    my $profiles;
    my $profileName;
    while (<$fh>) {
        chomp;
        next if /^$/;
        if ( $_ =~ m/^\[/ ) {
            ($profileName) = $_ =~ m/\[(.*?)\]/;
            $profiles->{$profileName}->{'profile'} = $profileName;
        } elsif ( defined $profileName ) {
            my ( $key, $val ) = split /=/, $_;
			$key =~ s/^\s+|\s+$//g;
			$val =~ s/^\s+|\s+$//g;
            $profiles->{$profileName}->{$key} = $val;
        }
    }
    $fh->close;
    $profiles;
}

sub getProfile {
    my $self     = shift;
    my $name     = shift;
    my $profiles = $self->getProfiles;
    Orchard::AWS::CredentialProfile->new($profiles->{$name});
}

1;
