module AWS.Credential
( Credential(..)
, AccessKey
, SecretAccessKey
, loadCredential
, loadCredentialFromFile
, newCredential
) where
import Data.ByteString (ByteString)
import qualified Data.ByteString as BS
import Text.Config
import Text.Parsec
mkConfig "configParser" [config|
Credential
accessKey ByteString
secretAccessKey ByteString
|]
type AccessKey = ByteString
type SecretAccessKey = ByteString
loadCredential :: IO Credential
loadCredential = loadCredentialFromFile "aws.config"
newCredential :: AccessKey -> SecretAccessKey -> Credential
newCredential key secret = Credential key secret
loadCredentialFromFile :: FilePath -> IO Credential
loadCredentialFromFile path = do
str <- BS.readFile path
case parse configParser "" str of
Left err -> fail $ show err
Right conf -> return conf